version 1.3.2.2, 2011/09/07 16:08:41
|
version 1.3.2.6, 2011/09/08 07:02:22
|
Line 340 sess_prepareSession(tagSess * __restrict s, u_char use
|
Line 340 sess_prepareSession(tagSess * __restrict s, u_char use
|
sess_SetErr(EINVAL, "Error:: invalid argument\n"); |
sess_SetErr(EINVAL, "Error:: invalid argument\n"); |
return NULL; |
return NULL; |
} |
} |
|
if (s->addr) { |
|
sess_SetErr(EINVAL, "Error:: already attached memory\n"); |
|
return NULL; |
|
} |
|
|
ATTACH_MEMORY(s); |
ATTACH_MEMORY(s); |
if (!s->addr) |
if (!s->addr) |
Line 404 sess_commitSession(tagSess * __restrict s, array_t * _
|
Line 408 sess_commitSession(tagSess * __restrict s, array_t * _
|
return -1; |
return -1; |
} |
} |
|
|
if (!s->zcopy) | ATTACH_MEMORY(s); |
ATTACH_MEMORY(s); | |
if (!s->addr) { |
if (!s->addr) { |
if (!s->zcopy) | DETACH_MEMORY(s); |
DETACH_MEMORY(s); | |
| |
return -1; |
return -1; |
} else |
} else |
hdr = (sess_hdr_t*) s->addr; |
hdr = (sess_hdr_t*) s->addr; |
if (hdr->hdr_magic != SESS_AIT_MAGIC) { |
|
if (!s->zcopy) |
|
DETACH_MEMORY(s); |
|
|
|
sess_SetErr(EINVAL, "Error:: shared memory not contains values with proper format\n"); |
|
return -1; |
|
} |
|
|
|
DEC_SEMAPHORE(s, rs); |
DEC_SEMAPHORE(s, rs); |
if ((ret = io_vals2map(s->addr + sizeof(sess_hdr_t), s->eom - sizeof(sess_hdr_t), arr)) != -1) { |
if ((ret = io_vals2map(s->addr + sizeof(sess_hdr_t), s->eom - sizeof(sess_hdr_t), arr)) != -1) { |
|
hdr->hdr_magic = SESS_AIT_MAGIC; |
hdr->hdr_argc = io_arraySize(arr); |
hdr->hdr_argc = io_arraySize(arr); |
ret += sizeof(sess_hdr_t); |
ret += sizeof(sess_hdr_t); |
} |
} |
ADD_SEMAPHORE(s, rs); |
ADD_SEMAPHORE(s, rs); |
|
|
if (!s->zcopy) | DETACH_MEMORY(s); |
DETACH_MEMORY(s); | |
return ret; |
return ret; |
} |
} |