--- libaitrpc/src/srv.c 2010/06/18 01:48:06 1.1.1.1 +++ libaitrpc/src/srv.c 2010/06/18 13:36:01 1.1.1.1.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: srv.c,v 1.1.1.1 2010/06/18 01:48:06 misho Exp $ +* $Id: srv.c,v 1.1.1.1.2.1 2010/06/18 13:36:01 misho Exp $ * *************************************************************************/ #include "global.h" @@ -276,9 +276,12 @@ rpc_srv_initServer(u_int regProgID, u_int regProcID, i } else memset(srv->srv_clients, 0, srv->srv_numcli * sizeof(rpc_cli_t)); + rpc_srv_registerCall(srv, NULL, CALL_SRVSHUTDOWN, 0); rpc_srv_registerCall(srv, NULL, CALL_SRVCLIENTS, 0); rpc_srv_registerCall(srv, NULL, CALL_SRVCALLS, 0); rpc_srv_registerCall(srv, NULL, CALL_SRVSESSIONS, 0); + + pthread_mutex_init(&rpc_mtx, NULL); return srv; } @@ -299,6 +302,8 @@ rpc_srv_endServer(rpc_srv_t * __restrict srv) return; } + pthread_mutex_destroy(&rpc_mtx); + while ((f = srv->srv_funcs)) { srv->srv_funcs = f->func_next; free(f); @@ -340,7 +345,7 @@ rpc_srv_execServer(rpc_srv_t * __restrict srv) return -1; } - while (42) { + while (!rpc_Kill) { for (c = srv->srv_clients, i = 0; i < srv->srv_numcli && c; i++, c++) if (!c->cli_sa.sa_family) break;