version 1.4.2.3, 2011/09/01 11:39:26
|
version 1.4.2.5, 2011/09/01 15:29:39
|
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); |
|
|
Line 353 rpc_srv_getBLOB(rpc_srv_t * __restrict srv, uint32_t v
|
Line 355 rpc_srv_getBLOB(rpc_srv_t * __restrict srv, uint32_t v
|
return NULL; |
return NULL; |
} |
} |
|
|
pthread_mutex_lock(&srv->srv_blob.mtx); |
|
for (b = srv->srv_blob.blobs; b; b = b->blob_next) { |
for (b = srv->srv_blob.blobs; b; b = b->blob_next) { |
if (b->blob_var == var) |
if (b->blob_var == var) |
break; |
break; |
} |
} |
pthread_mutex_unlock(&srv->srv_blob.mtx); |
|
|
|
return b; |
return b; |
} |
} |