|
|
| version 1.6.2.1, 2012/03/12 14:53:07 | version 1.6.2.2, 2012/03/12 15:04:38 |
|---|---|
| Line 777 rpc_srv_loopServer(rpc_srv_t * __restrict srv) | Line 777 rpc_srv_loopServer(rpc_srv_t * __restrict srv) |
| fd_set fds; | fd_set fds; |
| int ret; | int ret; |
| struct timeval tv = { DEF_RPC_TIMEOUT, 0 }; | struct timeval tv = { DEF_RPC_TIMEOUT, 0 }; |
| pthread_attr_t attr; | |
| if (!srv) { | if (!srv) { |
| rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t start RPC server ...\n"); | rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t start RPC server ...\n"); |
| Line 791 rpc_srv_loopServer(rpc_srv_t * __restrict srv) | Line 792 rpc_srv_loopServer(rpc_srv_t * __restrict srv) |
| return -1; | return -1; |
| } | } |
| pthread_attr_init(&attr); | |
| pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); | |
| while (srv->srv_kill != kill) { | while (srv->srv_kill != kill) { |
| for (c = srv->srv_clients, i = 0; i < srv->srv_numcli && c; i++, c++) | for (c = srv->srv_clients, i = 0; i < srv->srv_numcli && c; i++, c++) |
| if (!c->cli_sa.sa.sa_family) | if (!c->cli_sa.sa.sa_family) |
| Line 822 rpc_srv_loopServer(rpc_srv_t * __restrict srv) | Line 826 rpc_srv_loopServer(rpc_srv_t * __restrict srv) |
| } else | } else |
| c->cli_parent = srv; | c->cli_parent = srv; |
| if (pthread_create(&c->cli_tid, NULL, rpc_srv_dispatchCall, c)) { | if (pthread_create(&c->cli_tid, &attr, rpc_srv_dispatchCall, c)) { |
| LOGERR; | LOGERR; |
| continue; | continue; |
| } else | } |
| pthread_detach(c->cli_tid); | |
| } | } |
| pthread_attr_destroy(&attr); | |
| return 0; | return 0; |
| } | } |