diff options
author | Simon Rettberg | 2014-02-13 17:34:30 +0100 |
---|---|---|
committer | Simon Rettberg | 2014-02-13 17:34:30 +0100 |
commit | bdd558b79fa78d6ab258aa4eea7004ebe1df5384 (patch) | |
tree | 8395847778dd6403c8ab9912ffed37794a6caa63 | |
parent | [*] Add automatic version string generation (diff) | |
download | dnbd3-bdd558b79fa78d6ab258aa4eea7004ebe1df5384.tar.gz dnbd3-bdd558b79fa78d6ab258aa4eea7004ebe1df5384.tar.xz dnbd3-bdd558b79fa78d6ab258aa4eea7004ebe1df5384.zip |
[SERVER] Thread and uplink handling
-rw-r--r-- | src/server/net.c | 1 | ||||
-rw-r--r-- | src/server/server.c | 7 | ||||
-rw-r--r-- | src/server/uplink.c | 1 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/server/net.c b/src/server/net.c index 4ea95cf..b40413f 100644 --- a/src/server/net.c +++ b/src/server/net.c @@ -371,5 +371,6 @@ void *net_client_handler(void *dnbd3_client) dnbd3_remove_client( client ); client->running = FALSE; client = dnbd3_free_client( client ); + pthread_exit( NULL ); return NULL ; } diff --git a/src/server/server.c b/src/server/server.c index 968d59f..f19b4fe 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -328,10 +328,6 @@ int main(int argc, char *argv[]) //pthread_t thread_rpc; //pthread_create(&(thread_rpc), NULL, &dnbd3_rpc_mainloop, NULL); - pthread_attr_t threadAttrs; - pthread_attr_init( &threadAttrs ); - pthread_attr_setdetachstate( &threadAttrs, PTHREAD_CREATE_DETACHED ); - memlogf( "[INFO] Server is ready..." ); // +++++++++++++++++++++++++++++++++++++++++++++++++++ main loop @@ -376,6 +372,9 @@ int main(int argc, char *argv[]) continue; } + pthread_attr_t threadAttrs; + pthread_attr_init( &threadAttrs ); + pthread_attr_setdetachstate( &threadAttrs, PTHREAD_CREATE_DETACHED ); if ( 0 != pthread_create( &(dnbd3_client->thread), &threadAttrs, net_client_handler, (void *)(uintptr_t)dnbd3_client ) ) { memlogf( "[ERROR] Could not start thread for new client." ); dnbd3_remove_client( dnbd3_client ); diff --git a/src/server/uplink.c b/src/server/uplink.c index c49ff35..b6f7887 100644 --- a/src/server/uplink.c +++ b/src/server/uplink.c @@ -384,6 +384,7 @@ static void* uplink_mainloop(void *data) snprintf( buffer, sizeof(buffer), "[DEBUG WARNING] Starving request detected:\n" "%s\n(from %" PRIu64 " to %" PRIu64 ", status: %d)\n", link->queue[i].client->image->lower_name, link->queue[i].from, link->queue[i].to, link->queue[i].status ); + link->queue[i].status = ULR_NEW; spin_unlock( &link->queueLock ); printf("%s", buffer); spin_lock( &link->queueLock ); |