version 1.27.2.2, 2015/07/02 23:21:06
|
version 1.27.2.5, 2015/07/22 12:49:10
|
Line 1167 end:
|
Line 1167 end:
|
static void * |
static void * |
flushBLOB(sched_task_t *task) |
flushBLOB(sched_task_t *task) |
{ |
{ |
#ifndef atomic_load_acq_ptr | #ifdef atomic_load_acq_ptr |
uintptr_t sigArg = atomic_load_acq_ptr(&_glSigArg); |
uintptr_t sigArg = atomic_load_acq_ptr(&_glSigArg); |
#else |
#else |
uintptr_t sigArg = *((volatile uintptr_t*) &_glSigArg); |
uintptr_t sigArg = *((volatile uintptr_t*) &_glSigArg); |
Line 1379 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 1379 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
|
|
srv->srv_blob.kill = 1; |
srv->srv_blob.kill = 1; |
|
|
schedEnd(&srv->srv_blob.root); |
|
|
|
if (srv->srv_blob.server.cli_sa.sa.sa_family == AF_LOCAL) |
if (srv->srv_blob.server.cli_sa.sa.sa_family == AF_LOCAL) |
unlink(srv->srv_blob.server.cli_sa.sun.sun_path); |
unlink(srv->srv_blob.server.cli_sa.sun.sun_path); |
|
|
|
schedEnd(&srv->srv_blob.root); |
} |
} |
|
|
/* |
/* |
Line 1413 rpc_srv_loopBLOBServer(rpc_srv_t * __restrict srv)
|
Line 1413 rpc_srv_loopBLOBServer(rpc_srv_t * __restrict srv)
|
/* disabled kqueue support in libaitsched */ |
/* disabled kqueue support in libaitsched */ |
struct sigaction sa; |
struct sigaction sa; |
|
|
#ifndef atomic_store_rel_ptr | #ifdef atomic_store_rel_ptr |
atomic_store_rel_ptr(&_glSigArg, (uintptr_t) srv); |
atomic_store_rel_ptr(&_glSigArg, (uintptr_t) srv); |
#else |
#else |
*((volatile uintptr_t*) &_glSigArg) = (uintptr_t) srv; |
*((volatile uintptr_t*) &_glSigArg) = (uintptr_t) srv; |
Line 1606 rpc_srv_endServer(rpc_srv_t ** __restrict psrv)
|
Line 1606 rpc_srv_endServer(rpc_srv_t ** __restrict psrv)
|
|
|
/* if send kill to blob server */ |
/* if send kill to blob server */ |
rpc_srv_endBLOBServer(*psrv); |
rpc_srv_endBLOBServer(*psrv); |
|
/* wait for BLOB server done */ |
|
while (*(&(*psrv)->srv_blob.root)) |
|
usleep(1000); |
|
|
(*psrv)->srv_kill = 1; |
(*psrv)->srv_kill = 1; |
sleep(RPC_SCHED_POLLING); |
sleep(RPC_SCHED_POLLING); |
|
|
schedEnd(&(*psrv)->srv_root); |
|
|
|
if ((*psrv)->srv_server.cli_sa.sa.sa_family == AF_LOCAL) |
if ((*psrv)->srv_server.cli_sa.sa.sa_family == AF_LOCAL) |
unlink((*psrv)->srv_server.cli_sa.sun.sun_path); |
unlink((*psrv)->srv_server.cli_sa.sun.sun_path); |
|
|
|
schedEnd(&(*psrv)->srv_root); |
|
|
pthread_mutex_destroy(&(*psrv)->srv_funcs.mtx); |
pthread_mutex_destroy(&(*psrv)->srv_funcs.mtx); |
e_free(*psrv); |
e_free(*psrv); |