aboutsummaryrefslogtreecommitdiff
path: root/src/core/msgqueue.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-08-14 11:32:03 +0500
committerGarrett D'Amore <garrett@damore.org>2018-08-14 16:00:38 +0500
commit658fe8b446905158437f4698933a971c15d29e9e (patch)
tree0a51ea03d07ebe1fd2044be5fb477c734dd23d01 /src/core/msgqueue.h
parent77311bfcc94bba96cdee73ddcd1ac9a6d0ed17d2 (diff)
downloadnng-658fe8b446905158437f4698933a971c15d29e9e.tar.gz
nng-658fe8b446905158437f4698933a971c15d29e9e.tar.bz2
nng-658fe8b446905158437f4698933a971c15d29e9e.zip
fixes #648 REQ protocol can hang on close
Actually the problem was in socket core, in particular in the shutdown code. The socket shutdown is supposed to ensure that no pipes were present on the socket, so that protocols need not concern themselves with this. The code unfortunately was busted, due to an ordering problem compounded by a race condition. This fixes that, and changes the REQ protocol to avoid the blocking condition altogether, and sprinkles a few assertions to validate these rules are being adhered to.
Diffstat (limited to 'src/core/msgqueue.h')
0 files changed, 0 insertions, 0 deletions