diff options
author | Simon Rettberg | 2013-09-17 18:38:37 +0200 |
---|---|---|
committer | Simon Rettberg | 2013-09-17 18:38:37 +0200 |
commit | 5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5 (patch) | |
tree | 177c4149ab13cb542c787c13e3499c545c8393c4 /src/server/server.c | |
parent | [SERVER] Properly decrease uplink.queueLen when removing a client (diff) | |
download | dnbd3-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.c | 3 |
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; |