From 233c4ee9039b1ebcdbd208455d714496381a21f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Sat, 8 Mar 2014 00:03:58 +0000 Subject: [PATCH] fix bad initialization in signals --- C/signals.c | 8 +++----- H/Yapproto.h | 1 + 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/C/signals.c b/C/signals.c index d6362482a..9367fa09b 100755 --- a/C/signals.c +++ b/C/signals.c @@ -71,7 +71,6 @@ do_signal(int wid, yap_signals sig USES_REGS) REMOTE_LastActiveSignal(wid) = 0; UNLOCK(REMOTE_SignalLock(wid)); #else - LOCK(LOCAL_SignalLock); if (!LOCAL_InterruptsDisabled) { Yap_regp->CreepFlag_ = Unsigned(Yap_regp->LCL0_); @@ -83,7 +82,6 @@ do_signal(int wid, yap_signals sig USES_REGS) if (LOCAL_FirstActiveSignal != LOCAL_LastActiveSignal) { do { if (sig == LOCAL_ActiveSignals[i]) { - UNLOCK(LOCAL_SignalLock); return; } i++; @@ -95,7 +93,6 @@ do_signal(int wid, yap_signals sig USES_REGS) LOCAL_LastActiveSignal++; if (LOCAL_LastActiveSignal == LOCAL_MaxActiveSignals) LOCAL_LastActiveSignal = 0; - UNLOCK(LOCAL_SignalLock); #endif } @@ -424,7 +421,8 @@ Yap_InitSignalCPreds(void) #endif } -void Yap_InitSignals(int wid) +void *Yap_InitSignals(int wid) { - REMOTE_ActiveSignals(wid) = (UInt *)malloc(sizeof(UInt)*REMOTE_MaxActiveSignals(wid)); + void *ptr = (void *)malloc(sizeof(UInt)*REMOTE_MaxActiveSignals(wid)); + return ptr; } diff --git a/H/Yapproto.h b/H/Yapproto.h index 10b2ef9e5..2926bf81a 100755 --- a/H/Yapproto.h +++ b/H/Yapproto.h @@ -333,6 +333,7 @@ void Yap_InitSavePreds(void); /* signals.c */ void Yap_InitSignalCPreds(void); +void *Yap_InitSignals(int wid); /* sort.c */ void Yap_InitSortPreds(void);