summaryrefslogtreecommitdiff
path: root/src/mailbox.cpp
diff options
context:
space:
mode:
authorMartin Lucina <mato@kotelna.sk>2010-11-04 17:54:47 +0100
committerMartin Sustrik <sustrik@250bpm.com>2010-11-04 17:54:47 +0100
commit1b39bcd88336ebed002e13a8ac3d4bc104b13718 (patch)
tree065bafb75b1eabaeb7bb858d09a8fd77895916b8 /src/mailbox.cpp
parent756f7df8c8e82a67f033049af47a3f783ad951e1 (diff)
Automatically resize signalling socket buffer if full
If the socketpair used by signaler_t fills up, this can lead to deadlock. This patch provides partial resolution by attempting to resize SO_SNDBUF on the writer side, and if that fails we shall at least assert rather than hang. I've also refactored the signaler_t code to make the platform-dependent parts clearer and have tested both the MSG_DONTWAIT and standard POSIX path in recv. The Win32 implementation currently does not implement resizing as I'm not convinced that it's safe, but it will also assert like other platforms if signaler_t::send() cannot succeed. The OpenVMS implementation has been carried forward but is untested. Signed-off-by: Martin Lucina <mato@kotelna.sk>
Diffstat (limited to 'src/mailbox.cpp')
0 files changed, 0 insertions, 0 deletions