diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-01-01 14:34:29 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-01-01 14:34:29 -0800 |
| commit | 3fd43c488b47874db22a87a1d87eed94bbd85725 (patch) | |
| tree | ed9fe38b370c9a6162ac05596b91adfac9cb5579 /src/core/socket.c | |
| parent | c7b541af4a1a2c410dc63a638a17adb31d7342a3 (diff) | |
| download | nng-3fd43c488b47874db22a87a1d87eed94bbd85725.tar.gz nng-3fd43c488b47874db22a87a1d87eed94bbd85725.tar.bz2 nng-3fd43c488b47874db22a87a1d87eed94bbd85725.zip | |
Pipe simplifications for thread management.
This may also address a race in closing down pipes. Now pipes are always
registered with the socket. They also always have both a sender and receiver
thread. If the protocol doesn't need one or the other, the stock thread just
exits early.
Diffstat (limited to 'src/core/socket.c')
| -rw-r--r-- | src/core/socket.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/socket.c b/src/core/socket.c index 1700ca9f..2e95c229 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -53,7 +53,9 @@ nni_reaper(void *arg) nni_mutex_exit(&sock->s_mx); // This should already have been done. - pipe->p_ops.p_close(pipe->p_trandata); + if (pipe->p_trandata != NULL) { + pipe->p_ops.p_close(pipe->p_trandata); + } // Remove the pipe from the protocol. Protocols may // keep lists of pipes for managing their topologies. |
