save works
This commit is contained in:
parent
f4b1ba4cd7
commit
acfbec875b
51 changed files with 622 additions and 1175 deletions
|
|
@ -105,7 +105,7 @@ static int queue_reference(meta_obj_t* obj)
|
|||
static void queue_dereference(meta_obj_t* obj)
|
||||
{
|
||||
queue_private_t* priv = (queue_private_t*)RTTI_OBJ_TO_PRIV(obj);
|
||||
xce_queue_t* w = RTTI_OBJ_TO_DATA(xce_queue_t, obj);
|
||||
queue_t* w = RTTI_OBJ_TO_DATA(queue_t, obj);
|
||||
uint64_t count = 0;
|
||||
|
||||
my_rwlock_wlock(&(priv->lock));
|
||||
|
|
@ -163,9 +163,33 @@ static typeinfo_t queue_type = {
|
|||
.unlock = (unlock_fn_t)queue_unlock } }
|
||||
};
|
||||
|
||||
queue_t* makeQueue(var qmgr, xce_queue_t* w)
|
||||
queue_t* makeQueue(var qmgr, xce_queue_t* q)
|
||||
{
|
||||
/* FIMXE: */
|
||||
queue_t* queue = makeInstance(&queue_type, w);
|
||||
queue_t* queue = NULL;
|
||||
int rc = 0;
|
||||
|
||||
rc = key_find(qmgr, (void*)q->queue, (void**)&queue);
|
||||
if ((rc < 0) && (rc != -ENOENT)) {
|
||||
errno = -rc;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (rc > 0) {
|
||||
errno = EEXIST;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
queue = makeInstance(&queue_type, q);
|
||||
if (queue != NULL) {
|
||||
reference(queue);
|
||||
rc = key_add(qmgr, (void*)q->queue, (void*)queue);
|
||||
if (rc < 0) {
|
||||
destroy(queue);
|
||||
|
||||
errno = -rc;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return queue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue