version 1.8.2.1, 2012/05/11 08:46:41
|
version 1.8.2.2, 2012/05/11 08:49:43
|
Line 286 rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_
|
Line 286 rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_
|
|
|
blob = rpc_srv_blobCreate(srv, len); |
blob = rpc_srv_blobCreate(srv, len); |
if (blob) { |
if (blob) { |
pthread_mutex_lock(&srv->srv_blob.mtx); |
|
blob->blob_next = srv->srv_blob.blobs; |
blob->blob_next = srv->srv_blob.blobs; |
srv->srv_blob.blobs = blob; |
srv->srv_blob.blobs = blob; |
pthread_mutex_unlock(&srv->srv_blob.mtx); |
|
} |
} |
|
|
return blob; |
return blob; |
Line 319 rpc_srv_unregisterBLOB(rpc_srv_t * __restrict srv, uin
|
Line 317 rpc_srv_unregisterBLOB(rpc_srv_t * __restrict srv, uin
|
if (b->blob_data) |
if (b->blob_data) |
rpc_srv_blobUnmap(b); |
rpc_srv_blobUnmap(b); |
|
|
pthread_mutex_lock(&srv->srv_blob.mtx); |
|
if (srv->srv_blob.blobs == b) { /* if is 1st element */ |
if (srv->srv_blob.blobs == b) { /* if is 1st element */ |
srv->srv_blob.blobs = srv->srv_blob.blobs->blob_next; |
srv->srv_blob.blobs = srv->srv_blob.blobs->blob_next; |
} else { |
} else { |
for (curr = srv->srv_blob.blobs; curr->blob_next != b; curr = curr->blob_next); |
for (curr = srv->srv_blob.blobs; curr->blob_next != b; curr = curr->blob_next); |
curr->blob_next = curr->blob_next->blob_next; |
curr->blob_next = curr->blob_next->blob_next; |
} |
} |
pthread_mutex_unlock(&srv->srv_blob.mtx); |
|
rpc_srv_blobFree(srv, b); |
rpc_srv_blobFree(srv, b); |
free(b); |
free(b); |
|
|