version 1.8.2.2, 2012/05/11 08:46:41
|
version 1.8.2.3, 2012/05/11 08:49:43
|
Line 579 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
|
Line 579 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
|
} else |
} else |
memset(srv->srv_blob.clients, 0, srv->srv_numcli * sizeof(rpc_cli_t)); |
memset(srv->srv_blob.clients, 0, srv->srv_numcli * sizeof(rpc_cli_t)); |
|
|
pthread_mutex_init(&srv->srv_blob.mtx, NULL); |
|
|
|
rpc_srv_registerCall(srv, NULL, CALL_BLOBSHUTDOWN, 0); |
rpc_srv_registerCall(srv, NULL, CALL_BLOBSHUTDOWN, 0); |
rpc_srv_registerCall(srv, NULL, CALL_BLOBCLIENTS, 1); |
rpc_srv_registerCall(srv, NULL, CALL_BLOBCLIENTS, 1); |
rpc_srv_registerCall(srv, NULL, CALL_BLOBVARS, 1); |
rpc_srv_registerCall(srv, NULL, CALL_BLOBVARS, 1); |
Line 621 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 619 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; |
Line 633 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 630 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
rpc_srv_blobFree(srv, f); |
rpc_srv_blobFree(srv, f); |
free(f); |
free(f); |
} |
} |
pthread_mutex_unlock(&srv->srv_blob.mtx); |
|
|
|
AIT_FREE_VAL(&srv->srv_blob.dir); |
AIT_FREE_VAL(&srv->srv_blob.dir); |
|
|
while (pthread_mutex_trylock(&srv->srv_blob.mtx) == EBUSY); |
|
pthread_mutex_destroy(&srv->srv_blob.mtx); |
|
|
|
/* at final, save disable BLOB service state */ |
/* at final, save disable BLOB service state */ |
srv->srv_blob.state = disable; |
srv->srv_blob.state = disable; |