--- libaitrpc/src/builtin.c 2010/07/08 07:16:36 1.1.1.1.2.5 +++ libaitrpc/src/builtin.c 2010/07/08 12:29:38 1.1.1.1.2.7 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: builtin.c,v 1.1.1.1.2.5 2010/07/08 07:16:36 misho Exp $ +* $Id: builtin.c,v 1.1.1.1.2.7 2010/07/08 12:29:38 misho Exp $ * *************************************************************************/ #include "global.h" @@ -159,12 +159,16 @@ rpcBLOBServerVars(rpc_func_t *call, int ic, rpc_val_t else srv = call->func_parent; + pthread_mutex_lock(&srv->srv_blob.mtx); for (i = 0, b = srv->srv_blob.blobs; b; i++, b = b->blob_next); - if (!(vals = rpc_srv_retValsCall(call, i))) - return -1; + if (!(vals = rpc_srv_retValsCall(call, i))) { + pthread_mutex_unlock(&srv->srv_blob.mtx); + return 0; + } for (b = srv->srv_blob.blobs, v = vals; b; b = b->blob_next) RPC_SET_U32(v++, b->blob_var); + pthread_mutex_unlock(&srv->srv_blob.mtx); return 0; }