diff options
| author | Aleksei Solovev <solovalex@gmail.com> | 2024-12-08 15:54:13 +0300 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-12-08 17:47:35 -0800 |
| commit | 7643626bcf38aee7cb9f44d518401047d1c34c76 (patch) | |
| tree | c133ed48786d7bed42af7ae3c940e35a02380d6f /src/sp/protocol | |
| parent | 9067535b2a04f632e8cc1850788942a9d68f2be0 (diff) | |
| download | nng-7643626bcf38aee7cb9f44d518401047d1c34c76.tar.gz nng-7643626bcf38aee7cb9f44d518401047d1c34c76.tar.bz2 nng-7643626bcf38aee7cb9f44d518401047d1c34c76.zip | |
fixes #1959 Occasional SIGSEGV in nng_recv_aio() on a respondent socket
Diffstat (limited to 'src/sp/protocol')
| -rw-r--r-- | src/sp/protocol/survey0/respond.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sp/protocol/survey0/respond.c b/src/sp/protocol/survey0/respond.c index 8a8c134b..c8733e32 100644 --- a/src/sp/protocol/survey0/respond.c +++ b/src/sp/protocol/survey0/respond.c @@ -334,6 +334,10 @@ resp0_pipe_close(void *arg) nni_mtx_lock(&s->mtx); p->closed = true; + if (nni_list_active(&s->recvpipes, p)) { + // We are no longer "receivable". + nni_list_remove(&s->recvpipes, p); + } while ((ctx = nni_list_first(&p->sendq)) != NULL) { nni_aio *aio; nni_msg *msg; |
