|
|
| version 1.4.2.9, 2011/09/03 12:58:49 | version 1.5, 2011/09/07 07:24:21 |
|---|---|
| Line 117 rpc_srv_dispatchCall(void *arg) | Line 117 rpc_srv_dispatchCall(void *arg) |
| ret = -5; | ret = -5; |
| goto makeReply; | goto makeReply; |
| } | } |
| } | } else |
| arr = NULL; | |
| /* execute call */ | /* execute call */ |
| argc = 0; | argc = 0; |
| Line 448 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) | Line 449 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) |
| shutdown(c->cli_sock, SHUT_RDWR); | shutdown(c->cli_sock, SHUT_RDWR); |
| close(srv->srv_blob.server.cli_sock); | close(srv->srv_blob.server.cli_sock); |
| pthread_mutex_lock(&srv->srv_blob.mtx); | |
| if (srv->srv_blob.clients) { | if (srv->srv_blob.clients) { |
| free(srv->srv_blob.clients); | free(srv->srv_blob.clients); |
| srv->srv_blob.clients = NULL; | srv->srv_blob.clients = NULL; |
| } | } |
| /* detach blobs */ | /* detach blobs */ |
| pthread_mutex_lock(&srv->srv_blob.mtx); | |
| while ((f = srv->srv_blob.blobs)) { | while ((f = srv->srv_blob.blobs)) { |
| srv->srv_blob.blobs = f->blob_next; | srv->srv_blob.blobs = f->blob_next; |
| rpc_srv_blobFree(srv, f); | rpc_srv_blobFree(srv, f); |
| Line 496 rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) | Line 497 rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) |
| if (!c->cli_sa.sa_family) | if (!c->cli_sa.sa_family) |
| break; | break; |
| if (i >= srv->srv_numcli) { | if (i >= srv->srv_numcli) { |
| usleep(1000000); | |
| #ifdef HAVE_PTHREAD_YIELD | #ifdef HAVE_PTHREAD_YIELD |
| pthread_yield(); | pthread_yield(); |
| #else | |
| usleep(1000000); | |
| #endif | #endif |
| continue; | continue; |
| } | } |
| Line 528 rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) | Line 530 rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) |
| pthread_detach(c->cli_tid); | pthread_detach(c->cli_tid); |
| } | } |
| srv->srv_blob.state = disable; | srv->srv_blob.state = kill; |
| return 0; | return 0; |
| } | } |
| Line 759 rpc_srv_loopServer(rpc_srv_t * __restrict srv) | Line 761 rpc_srv_loopServer(rpc_srv_t * __restrict srv) |
| if (!c->cli_sa.sa_family) | if (!c->cli_sa.sa_family) |
| break; | break; |
| if (i >= srv->srv_numcli) { | if (i >= srv->srv_numcli) { |
| usleep(1000000); | |
| #ifdef HAVE_PTHREAD_YIELD | #ifdef HAVE_PTHREAD_YIELD |
| pthread_yield(); | pthread_yield(); |
| #else | |
| usleep(1000000); | |
| #endif | #endif |
| continue; | continue; |
| } | } |