aboutsummaryrefslogtreecommitdiff
path: root/src/core/aio.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-07-16 01:02:09 -0700
committerGarrett D'Amore <garrett@damore.org>2017-07-16 01:02:09 -0700
commit89c4ae87f3d927c8a6a760b6706b3a8e386dfb55 (patch)
tree7fa84fbd8076ac262dcc6836653968276738ad18 /src/core/aio.h
parenta1d237059c652c9e36117eed3e6387dcae128174 (diff)
downloadnng-89c4ae87f3d927c8a6a760b6706b3a8e386dfb55.tar.gz
nng-89c4ae87f3d927c8a6a760b6706b3a8e386dfb55.tar.bz2
nng-89c4ae87f3d927c8a6a760b6706b3a8e386dfb55.zip
AIO timeouts work correctly now, using their own timer logic.
We closed a few subtle races in the AIO subsystem as well, and now we were able to eliminate the separate timer handling the MQ code. There appear to be some opportunities to further enhance the code for MQs as well -- eventually probably the only access to MQs will be with AIOs.
Diffstat (limited to 'src/core/aio.h')
-rw-r--r--src/core/aio.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/aio.h b/src/core/aio.h
index 296b0682..09923d7f 100644
--- a/src/core/aio.h
+++ b/src/core/aio.h
@@ -52,6 +52,9 @@ struct nni_aio {
void (*a_prov_cancel)(nni_aio *);
void * a_prov_data;
nni_list_node a_prov_node;
+
+ // Expire node.
+ nni_list_node a_expire_node;
};
// nni_aio_init initializes an aio object. The callback is called with
@@ -118,4 +121,6 @@ extern int nni_aio_start(nni_aio *, void (*)(nni_aio *), void *);
// nni_fini?)
// extern void nni_aio_stop(nni_aio *);
+extern int nni_aio_sys_init(void);
+extern void nni_aio_sys_fini(void);
#endif // CORE_AIO_H