aboutsummaryrefslogtreecommitdiff
path: root/src/platform/posix/posix_pollq.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-12-19 23:50:13 -0800
committerGarrett D'Amore <garrett@damore.org>2024-12-20 08:12:42 -0800
commit20e625137a38232c87871661c684953ef2cfc5f8 (patch)
treeaf75f9c134ea89160a1ccbe80d17b0f3582c8239 /src/platform/posix/posix_pollq.h
parent60f63557d87528497fe1392fa6a676b2a51efb16 (diff)
downloadnng-20e625137a38232c87871661c684953ef2cfc5f8.tar.gz
nng-20e625137a38232c87871661c684953ef2cfc5f8.tar.bz2
nng-20e625137a38232c87871661c684953ef2cfc5f8.zip
posix pollers: inline the pfd and make callbacks constant
This change moves the posix pollers to inline the PFD and makes the callbacks constant, so that we can dispense with tests, failures, and locks. It is anticipated that this will reduce lock based pressure on the bus and increase performance modestly.
Diffstat (limited to 'src/platform/posix/posix_pollq.h')
-rw-r--r--src/platform/posix/posix_pollq.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/platform/posix/posix_pollq.h b/src/platform/posix/posix_pollq.h
index c79a3e18..121834cf 100644
--- a/src/platform/posix/posix_pollq.h
+++ b/src/platform/posix/posix_pollq.h
@@ -22,7 +22,7 @@
#include "core/nng_impl.h"
typedef struct nni_posix_pfd nni_posix_pfd;
-typedef void (*nni_posix_pfd_cb)(nni_posix_pfd *, unsigned, void *);
+typedef void (*nni_posix_pfd_cb)(void *, unsigned);
#if defined(NNG_POLLQ_KQUEUE)
#include "posix_pollq_kqueue.h"
@@ -33,17 +33,17 @@ typedef void (*nni_posix_pfd_cb)(nni_posix_pfd *, unsigned, void *);
#elif defined(NNG_POLLQ_POLL)
#include "posix_pollq_epoll.h"
#elif defined(NNG_POLLQ_SELECT)
-#include "posix_pollq_epoll.h"
+#include "posix_pollq_select.h"
#else
#error "No suitable poller defined"
#endif
-extern int nni_posix_pfd_init(nni_posix_pfd **, int);
+extern void nni_posix_pfd_init(nni_posix_pfd *, int, nni_posix_pfd_cb, void *);
extern void nni_posix_pfd_fini(nni_posix_pfd *);
+extern void nni_posix_pfd_stop(nni_posix_pfd *);
extern int nni_posix_pfd_arm(nni_posix_pfd *, unsigned);
extern int nni_posix_pfd_fd(nni_posix_pfd *);
extern void nni_posix_pfd_close(nni_posix_pfd *);
-extern void nni_posix_pfd_set_cb(nni_posix_pfd *, nni_posix_pfd_cb, void *);
#endif // NNG_PLATFORM_POSIX