--- libaitrpc/src/srv.c 2012/05/11 08:46:41 1.8.2.2 +++ libaitrpc/src/srv.c 2012/05/11 09:11:01 1.8.2.4 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: srv.c,v 1.8.2.2 2012/05/11 08:46:41 misho Exp $ +* $Id: srv.c,v 1.8.2.4 2012/05/11 09:11:01 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -579,8 +579,6 @@ rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s } else 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_BLOBCLIENTS, 1); rpc_srv_registerCall(srv, NULL, CALL_BLOBVARS, 1); @@ -621,7 +619,6 @@ rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) shutdown(c->cli_sock, SHUT_RDWR); close(srv->srv_blob.server.cli_sock); - pthread_mutex_lock(&srv->srv_blob.mtx); if (srv->srv_blob.clients) { free(srv->srv_blob.clients); srv->srv_blob.clients = NULL; @@ -633,13 +630,9 @@ rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) rpc_srv_blobFree(srv, f); free(f); } - pthread_mutex_unlock(&srv->srv_blob.mtx); 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 */ srv->srv_blob.state = disable; } @@ -671,12 +664,13 @@ rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) LOGERR; return -1; } else - fcntl(srv->srv_server.cli_sock, F_SETFL, fcntl(srv->srv_server.cli_sock, F_GETFL) | O_NONBLOCK); + fcntl(srv->srv_blob.server.cli_sock, F_SETFL, + fcntl(srv->srv_blob.server.cli_sock, F_GETFL) | O_NONBLOCK); pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - pfd.fd = srv->srv_server.cli_sock; + pfd.fd = srv->srv_blob.server.cli_sock; pfd.events = POLLIN | POLLPRI; /* main BLOB loop */ while (srv->srv_blob.state != kill && srv->srv_kill != kill) {