Changeset a784a96 in mainline


Ignore:
Timestamp:
2006-05-29T13:12:51Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d1e70c7
Parents:
5bd03eb
Message:

Allow NULL callback on async call.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libc/generic/ipc.c

    r5bd03eb ra784a96  
    121121        call = malloc(sizeof(*call));
    122122        if (!call) {
    123                 callback(private, ENOMEM, NULL);
     123                if (callback)
     124                        callback(private, ENOMEM, NULL);
    124125                return;
    125126        }
     
    128129        if (callid == IPC_CALLRET_FATAL) {
    129130                /* Call asynchronous handler with error code */
    130                 callback(private, ENOENT, NULL);
     131                if (callback)
     132                        callback(private, ENOENT, NULL);
    131133                free(call);
    132134                return;
     
    206208                if (callid == IPC_CALLRET_FATAL) {
    207209                        futex_up(&ipc_futex);
    208                         call->callback(call->private, ENOENT, NULL);
     210                        if (call->callback)
     211                                call->callback(call->private, ENOENT, NULL);
    209212                        free(call);
    210213                        futex_down(&ipc_futex);
     
    237240                        list_remove(&call->list);
    238241                        futex_up(&ipc_futex);
    239                         call->callback(call->private,
    240                                        IPC_GET_RETVAL(*data),
    241                                        data);
     242                        if (call->callback)
     243                                call->callback(call->private,
     244                                               IPC_GET_RETVAL(*data),
     245                                               data);
     246                        free(call);
    242247                        return;
    243248                }
Note: See TracChangeset for help on using the changeset viewer.