diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-06-29 11:33:01 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-06-29 11:33:01 -0700 |
| commit | 36bd0c71ce7a0bfbb22ffc99aa0dd94ed95cfc64 (patch) | |
| tree | a2ab064810f269fac8e9b0473685a02c5643f5c9 /src/core | |
| parent | d0c0c9969ab5552889f91d09db6dbf6b79f6705c (diff) | |
| download | nng-36bd0c71ce7a0bfbb22ffc99aa0dd94ed95cfc64.tar.gz nng-36bd0c71ce7a0bfbb22ffc99aa0dd94ed95cfc64.tar.bz2 nng-36bd0c71ce7a0bfbb22ffc99aa0dd94ed95cfc64.zip | |
Pass cancel of IPC and TCP all the way down to POSIX pipedescs.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/aio.c | 2 | ||||
| -rw-r--r-- | src/core/platform.h | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/core/aio.c b/src/core/aio.c index 96e7c950..6a57ad52 100644 --- a/src/core/aio.c +++ b/src/core/aio.c @@ -116,6 +116,8 @@ nni_aio_start(nni_aio *aio, void (*cancel)(nni_aio *), void *data) nni_mtx_unlock(&aio->a_lk); return (NNG_ECANCELED); } + aio->a_result = 0; + aio->a_count = 0; aio->a_prov_cancel = cancel; aio->a_prov_data = data; nni_mtx_unlock(&aio->a_lk); diff --git a/src/core/platform.h b/src/core/platform.h index 08fcdb1c..7654f730 100644 --- a/src/core/platform.h +++ b/src/core/platform.h @@ -207,12 +207,12 @@ extern int nni_plat_tcp_connect(nni_plat_tcpsock *, const nni_sockaddr *, // The data to send is stored in the a_iov field of the aio, and the array // of iovs will never be larger than 4. The platform may modify the iovs, // or the iov list. -extern int nni_plat_tcp_aio_send(nni_plat_tcpsock *, nni_aio *); +extern void nni_plat_tcp_aio_send(nni_plat_tcpsock *, nni_aio *); // nni_plat_tcp_aio_recv recvs data into the buffers provided by the // iovs. The implementation does not return until the iovs are completely // full, or an error condition occurs. -extern int nni_plat_tcp_aio_recv(nni_plat_tcpsock *, nni_aio *); +extern void nni_plat_tcp_aio_recv(nni_plat_tcpsock *, nni_aio *); // nni_plat_ipc_init initializes the socket, for example it can // set underlying file descriptors to -1, etc. @@ -244,12 +244,12 @@ extern int nni_plat_ipc_connect(nni_plat_ipcsock *, const char *); // nni_plat_ipc_aio_send sends data to the peer. The platform is responsible // for attempting to send all of the data. The iov count will never be // larger than 4. The platform may modify the iovs. -extern int nni_plat_ipc_aio_send(nni_plat_ipcsock *, nni_aio *); +extern void nni_plat_ipc_aio_send(nni_plat_ipcsock *, nni_aio *); // nni_plat_ipc_aio_recv recvs data into the buffers provided by the // iovs. The implementation does not return until the iovs are completely // full, or an error condition occurs. -extern int nni_plat_ipc_aio_recv(nni_plat_ipcsock *, nni_aio *); +extern void nni_plat_ipc_aio_recv(nni_plat_ipcsock *, nni_aio *); // nni_plat_seed_prng seeds the PRNG subsystem. The specified number // of bytes of entropy should be stashed. When possible, cryptographic |
