From 20003fd25404ee5fc4cd068fbc4fae1ad6f6ae99 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Fri, 27 Dec 2024 15:24:00 -0500 Subject: Finish server reuse connection, move loop to list Signed-off-by: Andrew Opalach --- src/cache/handle.c | 5 +++++ src/cache/handle.h | 1 + src/cache/threaded_waits.c | 7 +++++++ src/cache/threaded_waits.h | 1 + 4 files changed, 14 insertions(+) (limited to 'src/cache') diff --git a/src/cache/handle.c b/src/cache/handle.c index 206738e..dddf172 100644 --- a/src/cache/handle.c +++ b/src/cache/handle.c @@ -97,3 +97,8 @@ void cch_handle_disable(struct cch_handle *handle) { cch_threaded_wait_disable(&handle->wait); } + +void cch_handle_enable(struct cch_handle *handle) +{ + cch_threaded_wait_enable(&handle->wait); +} diff --git a/src/cache/handle.h b/src/cache/handle.h index fc84109..007e04d 100644 --- a/src/cache/handle.h +++ b/src/cache/handle.h @@ -18,3 +18,4 @@ s32 cch_handle_read(struct cch_handle *handle, u8 *buf, s32 size); off_t cch_handle_seek(struct cch_handle *handle, off_t offset, s32 whence); bool cch_handle_can_seek(struct cch_handle *handle); void cch_handle_disable(struct cch_handle *handle); +void cch_handle_enable(struct cch_handle *handle); diff --git a/src/cache/threaded_waits.c b/src/cache/threaded_waits.c index 3bf67eb..5990783 100644 --- a/src/cache/threaded_waits.c +++ b/src/cache/threaded_waits.c @@ -76,6 +76,13 @@ void cch_threaded_wait_disable(struct cch_handler_wait *wait) nn_mutex_unlock(&wait->mutex); } +void cch_threaded_wait_enable(struct cch_handler_wait *wait) +{ + nn_mutex_lock(&wait->mutex); + wait->disabled = false; + nn_mutex_unlock(&wait->mutex); +} + void cch_threaded_waits_disable_all(struct cch_handler *handler) { nn_mutex_lock(&handler->mutex); diff --git a/src/cache/threaded_waits.h b/src/cache/threaded_waits.h index ee0838d..f8c05a2 100644 --- a/src/cache/threaded_waits.h +++ b/src/cache/threaded_waits.h @@ -9,6 +9,7 @@ void cch_threaded_waits_init(struct cch_handler *handler); bool cch_threaded_wait_for_range(struct cch_handler *handler, struct cch_backing *backing, struct cch_handler_wait *wait); void cch_threaded_waits_signal_any(struct cch_handler *handler); void cch_threaded_wait_disable(struct cch_handler_wait *wait); +void cch_threaded_wait_enable(struct cch_handler_wait *wait); void cch_threaded_waits_disable_all(struct cch_handler *handler); void cch_threaded_waits_evaluate(struct cch_handler *handler, struct cch_backing *backing); void cch_threaded_waits_close(struct cch_handler *handler); -- cgit v1.2.3-101-g0448