Changeset ca687ad in mainline for generic/src/ipc/sysipc.c


Ignore:
Timestamp:
2006-03-31T13:53:36Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0cb56f5d
Parents:
296cc1b
Message:

Completed ipc_cleanup, it should be somehow integrated into
cleanup of task. The function can sleep.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/ipc/sysipc.c

    r296cc1b rca687ad  
    9393
    9494        if (IPC_GET_RETVAL(answer->data) == EHANGUP) {
    95                 /* Atomic operation */
    96                 answer->data.phone->callee = NULL;
     95                /* In case of forward, hangup the forwared phone,
     96                 * not the originator
     97                 */
     98                spinlock_lock(&answer->data.phone->lock);
     99                spinlock_lock(&TASK->answerbox.lock);
     100                if (answer->data.phone->callee) {
     101                        list_remove(&answer->data.phone->list);
     102                        answer->data.phone->callee = 0;
     103                }
     104                spinlock_unlock(&TASK->answerbox.lock);
     105                spinlock_unlock(&answer->data.phone->lock);
    97106        }
    98107
Note: See TracChangeset for help on using the changeset viewer.