--- - branch: MAIN date: Mon Jan 10 19:49:43 UTC 2011 files: - new: '1.15' old: '1.14' path: src/lib/librumpclient/rumpclient.c pathrev: src/lib/librumpclient/rumpclient.c@1.15 type: modified - new: '1.34' old: '1.33' path: src/lib/librumpuser/rumpuser_sp.c pathrev: src/lib/librumpuser/rumpuser_sp.c@1.34 type: modified - new: '1.23' old: '1.22' path: src/lib/librumpuser/sp_common.c pathrev: src/lib/librumpuser/sp_common.c@1.23 type: modified id: 20110110T194943Z.e0530cbc11d581caddd21c308b64b5d9de54b5be log: | 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()) module: src subject: 'CVS commit: src/lib' unixtime: '1294688983' user: pooka