aboutsummaryrefslogtreecommitdiff
path: root/src/platform/posix/posix_pollq.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-07-18 17:29:39 -0700
committerGarrett D'Amore <garrett@damore.org>2017-07-18 17:29:39 -0700
commit3eb60946ae8b5ad7d8a95233ffe946432acdb837 (patch)
tree6bf6c678411a0e63731a624929fcb979781a9758 /src/platform/posix/posix_pollq.h
parentab7772be3e3c208a48408b67924d3b58fca7f474 (diff)
downloadnng-3eb60946ae8b5ad7d8a95233ffe946432acdb837.tar.gz
nng-3eb60946ae8b5ad7d8a95233ffe946432acdb837.tar.bz2
nng-3eb60946ae8b5ad7d8a95233ffe946432acdb837.zip
Sometimes providers don't clear the prov data details. (Backoff).
Diffstat (limited to 'src/platform/posix/posix_pollq.h')
-rw-r--r--src/platform/posix/posix_pollq.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/platform/posix/posix_pollq.h b/src/platform/posix/posix_pollq.h
index e42b120d..9fa7c92e 100644
--- a/src/platform/posix/posix_pollq.h
+++ b/src/platform/posix/posix_pollq.h
@@ -25,22 +25,26 @@ typedef struct nni_posix_pollq_node nni_posix_pollq_node;
typedef struct nni_posix_pollq nni_posix_pollq;
struct nni_posix_pollq_node {
- nni_posix_pollq *pq; // associated pollq
nni_list_node node; // linkage into the pollq list
+ nni_posix_pollq *pq; // associated pollq
int index; // used by the poller impl
int armed; // used by the poller impl
int fd; // file descriptor to poll
int events; // events to watch for
int revents; // events received
- void * data; // user data
- nni_cb cb; // user callback on event
+ nni_taskq_ent task;
+ void * data; // user data
+ nni_cb cb; // user callback on event
};
extern nni_posix_pollq *nni_posix_pollq_get(int);
-extern int nni_posix_pollq_submit(nni_posix_pollq *, nni_posix_pollq_node *);
-extern void nni_posix_pollq_cancel(nni_posix_pollq *, nni_posix_pollq_node *);
-extern int nni_posix_pollq_sysinit(void);
-extern void nni_posix_pollq_sysfini(void);
+extern int nni_posix_pollq_sysinit(void);
+extern void nni_posix_pollq_sysfini(void);
+
+extern int nni_posix_pollq_add(nni_posix_pollq *, nni_posix_pollq_node *);
+extern void nni_posix_pollq_remove(nni_posix_pollq_node *);
+extern void nni_posix_pollq_arm(nni_posix_pollq_node *, int);
+extern void nni_posix_pollq_disarm(nni_posix_pollq_node *, int);
#endif // PLATFORM_POSIX