Now
MAIN commitmail json YAML
src/lib/librumpclient/rumpclient.c@1.15
/
diff
/
nxr@1.15
src/lib/librumpuser/rumpuser_sp.c@1.34 / diff / nxr@1.34
src/lib/librumpuser/sp_common.c@1.23 / diff / nxr@1.23
src/lib/librumpuser/rumpuser_sp.c@1.34 / diff / nxr@1.34
src/lib/librumpuser/sp_common.c@1.23 / diff / nxr@1.23
A bunch of improvements:
* don't hold spc mutex while sending data
* use send() for the banner to avoid SIGPIPE in case a client
connects and immediately goes away
* fix error path locking
* use kevent() instead of pollts() in the client. Apparently that
is the only sensible way for a library to support both multithreading
and signal-reentrancy in a race-free manner.
(can I catch all signals with one kevent instead of installing
NSIG different ones??)
* mark client comm descriptor non-blocking so that clients have
better signal-interruptibility (we now sleep in signal-accepting
kevent() instead of signal-masked recvfrom())
* don't hold spc mutex while sending data
* use send() for the banner to avoid SIGPIPE in case a client
connects and immediately goes away
* fix error path locking
* use kevent() instead of pollts() in the client. Apparently that
is the only sensible way for a library to support both multithreading
and signal-reentrancy in a race-free manner.
(can I catch all signals with one kevent instead of installing
NSIG different ones??)
* mark client comm descriptor non-blocking so that clients have
better signal-interruptibility (we now sleep in signal-accepting
kevent() instead of signal-masked recvfrom())