version 1.4.2.3, 2011/09/01 11:39:26
|
version 1.4.2.4, 2011/09/01 14:28:41
|
Line 221 rpc_srv_registerCall(rpc_srv_t * __restrict srv, const
|
Line 221 rpc_srv_registerCall(rpc_srv_t * __restrict srv, const
|
func->func_next = srv->srv_funcs; |
func->func_next = srv->srv_funcs; |
srv->srv_funcs = func; |
srv->srv_funcs = func; |
pthread_mutex_unlock(&srv->srv_mtx); |
pthread_mutex_unlock(&srv->srv_mtx); |
|
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<func(%s)=%p\n", func->func_name, func); |
return 0; |
return 0; |
} |
} |
|
|
Line 254 rpc_srv_unregisterCall(rpc_srv_t * __restrict srv, con
|
Line 255 rpc_srv_unregisterCall(rpc_srv_t * __restrict srv, con
|
func.func_tag = crcFletcher16((u_short*) str, sizeof str / 2); |
func.func_tag = crcFletcher16((u_short*) str, sizeof str / 2); |
func.func_hash = hash_fnv((char*) str, sizeof str); |
func.func_hash = hash_fnv((char*) str, sizeof str); |
|
|
|
pthread_mutex_lock(&srv->srv_mtx); |
f = rpc_srv_getCall(srv, func.func_tag, func.func_hash); |
f = rpc_srv_getCall(srv, func.func_tag, func.func_hash); |
if (!f) /* not found element for unregister */ |
if (!f) /* not found element for unregister */ |
return 0; |
return 0; |
|
|
pthread_mutex_lock(&srv->srv_mtx); | printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>func(%s)=%p\n", f->func_name, f); |
if (srv->srv_funcs == f) { /* if is 1st element */ |
if (srv->srv_funcs == f) { /* if is 1st element */ |
srv->srv_funcs = srv->srv_funcs->func_next; |
srv->srv_funcs = srv->srv_funcs->func_next; |
|
|
if (f->func_vars) | rpc_srv_destroyVars(f); |
rpc_srv_destroyVars(f); | |
free(f); |
free(f); |
|
f = NULL; |
} else { |
} else { |
for (curr = srv->srv_funcs; curr->func_next != f; curr = curr->func_next); |
for (curr = srv->srv_funcs; curr->func_next != f; curr = curr->func_next); |
curr->func_next = curr->func_next->func_next; |
curr->func_next = curr->func_next->func_next; |
|
|
if (f->func_vars) | rpc_srv_destroyVars(f); |
rpc_srv_destroyVars(f); | |
free(f); |
free(f); |
|
f = NULL; |
} |
} |
pthread_mutex_unlock(&srv->srv_mtx); |
pthread_mutex_unlock(&srv->srv_mtx); |
|
|