summaryrefslogtreecommitdiffstats
path: root/src/server/server.c
diff options
context:
space:
mode:
authorSimon Rettberg2013-09-17 18:38:37 +0200
committerSimon Rettberg2013-09-17 18:38:37 +0200
commit5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5 (patch)
tree177c4149ab13cb542c787c13e3499c545c8393c4 /src/server/server.c
parent[SERVER] Properly decrease uplink.queueLen when removing a client (diff)
downloaddnbd3-5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5.tar.gz
dnbd3-5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5.tar.xz
dnbd3-5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5.zip
[SERVER] Block signals on network threads
Diffstat (limited to 'src/server/server.c')
-rw-r--r--src/server/server.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/server.c b/src/server/server.c
index e62c966..51c662b 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -328,11 +328,12 @@ int main(int argc, char *argv[])
memlogf( "[INFO] Server is ready..." );
// +++++++++++++++++++++++++++++++++++++++++++++++++++ main loop
- while ( 1 ) {
+ while ( !_shutdown ) {
len = sizeof(client);
fd = accept_any( sockets, socket_count, &client, &len );
if ( fd < 0 ) {
const int err = errno;
+ if ( err == EINTR || err == EAGAIN ) continue;
memlogf( "[ERROR] Client accept failure (err=%d)", err );
usleep( 10000 ); // 10ms
continue;