From a032f40c8a31cbded70535879f961535cfc9adae Mon Sep 17 00:00:00 2001 From: NicJA Date: Wed, 20 May 2015 12:43:48 +0000 Subject: [PATCH] AllocTaskSignal can be called before the ETask is created - so don't attempt the lock if it is not ready yet. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@50729 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- rom/exec/allocsignal.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rom/exec/allocsignal.c b/rom/exec/allocsignal.c index 6fee94d652..62f194d6c0 100644 --- a/rom/exec/allocsignal.c +++ b/rom/exec/allocsignal.c @@ -121,14 +121,20 @@ LONG AllocTaskSignal(struct Task *ThisTask, LONG signalNum, struct ExecBase *Sys ThisTask->tc_SigWait &= ~mask1; #if defined(__AROSEXEC_SMP__) - EXEC_SPINLOCK_LOCK(&IntETask(ThisTask->tc_UnionETask.tc_ETask)->iet_TaskLock, SPINLOCK_MODE_WRITE); + if (ThisTask->tc_UnionETask.tc_ETask) + { + EXEC_SPINLOCK_LOCK(&IntETask(ThisTask->tc_UnionETask.tc_ETask)->iet_TaskLock, SPINLOCK_MODE_WRITE); + } #endif Disable(); ThisTask->tc_SigRecvd &= ~mask1; #if defined(__AROSEXEC_SMP__) - EXEC_SPINLOCK_UNLOCK(&IntETask(ThisTask->tc_UnionETask.tc_ETask)->iet_TaskLock); + if (ThisTask->tc_UnionETask.tc_ETask) + { + EXEC_SPINLOCK_UNLOCK(&IntETask(ThisTask->tc_UnionETask.tc_ETask)->iet_TaskLock); + } #endif Enable(); -- 2.11.4.GIT