summaryrefslogtreecommitdiff
path: root/proxy.h
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2022-12-13 12:48:14 -0800
committerdormando <dormando@rydia.net>2022-12-13 12:48:14 -0800
commit8b98647d1ad80dee3ddb49dfc51cd7bd07fe9297 (patch)
tree3a12dd2af7f5de130a1fd0034d80716416c7685b /proxy.h
parentd401611ba88db17c38fedf97d336f8085ce24bab (diff)
downloadmemcached-8b98647d1ad80dee3ddb49dfc51cd7bd07fe9297.tar.gz
proxy: make io_uring backend work again
updates the io_uring code to match the updates on the libevent side. needs more work before merge: - auditing error conditions - try harder for some code deduplication
Diffstat (limited to 'proxy.h')
-rw-r--r--proxy.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/proxy.h b/proxy.h
index 073401b..dbd217e 100644
--- a/proxy.h
+++ b/proxy.h
@@ -140,6 +140,7 @@ typedef struct _io_pending_proxy_t io_pending_proxy_t;
typedef struct proxy_event_thread_s proxy_event_thread_t;
#ifdef HAVE_LIBURING
+// TODO: pass in cqe->res instead of cqe?
typedef void (*proxy_event_cb)(void *udata, struct io_uring_cqe *cqe);
typedef struct {
void *udata;
@@ -360,8 +361,10 @@ struct proxy_event_thread_s {
#ifdef HAVE_LIBURING
struct io_uring ring;
proxy_event_t ur_notify_event; // listen on eventfd.
+ proxy_event_t ur_benotify_event; // listen on eventfd for backend connections.
proxy_event_t ur_clock_event; // timer for updating event thread data.
eventfd_t event_counter;
+ eventfd_t beevent_counter;
bool use_uring;
#endif
pthread_mutex_t mutex; // covers stack.