Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1442 → Rev 1443

/uspace/trunk/libc/generic/ipc.c
120,7 → 120,8
 
call = malloc(sizeof(*call));
if (!call) {
callback(private, ENOMEM, NULL);
if (callback)
callback(private, ENOMEM, NULL);
return;
}
127,7 → 128,8
callid = __SYSCALL4(SYS_IPC_CALL_ASYNC_FAST, phoneid, method, arg1, arg2);
if (callid == IPC_CALLRET_FATAL) {
/* Call asynchronous handler with error code */
callback(private, ENOENT, NULL);
if (callback)
callback(private, ENOENT, NULL);
free(call);
return;
}
205,7 → 207,8
 
if (callid == IPC_CALLRET_FATAL) {
futex_up(&ipc_futex);
call->callback(call->private, ENOENT, NULL);
if (call->callback)
call->callback(call->private, ENOENT, NULL);
free(call);
futex_down(&ipc_futex);
} else {
236,9 → 239,11
if (call->u.callid == callid) {
list_remove(&call->list);
futex_up(&ipc_futex);
call->callback(call->private,
IPC_GET_RETVAL(*data),
data);
if (call->callback)
call->callback(call->private,
IPC_GET_RETVAL(*data),
data);
free(call);
return;
}
}