X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Facesskernel_src%2Fthreads.c;h=de61ef47d584d8c43d9d647b6295376641073424;hb=5a66c3a4a2019a7ddea8931c8476bb64f4d29079;hp=661d584b4ad32a6ea605efa55f58cac57a517249;hpb=04a050f42807686dc119838c82372409246d55bb;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/threads.c b/AcessNative/acesskernel_src/threads.c index 661d584b..de61ef47 100644 --- a/AcessNative/acesskernel_src/threads.c +++ b/AcessNative/acesskernel_src/threads.c @@ -339,7 +339,7 @@ Uint32 Threads_WaitEvents(Uint32 Mask) //Log_Debug("Threads", "Mask = %x, ->Events = %x", Mask, gpCurrentThread->Events); gpCurrentThread->WaitMask = Mask; - if( !(gpCurrentThread->Events & Mask) ) + if( !(gpCurrentThread->EventState & Mask) ) { if( Threads_Glue_SemWait(gpCurrentThread->EventSem, INT_MAX) == -1 ) { Log_Warning("Threads", "Wait on eventsem of %p, %p failed", @@ -347,8 +347,8 @@ Uint32 Threads_WaitEvents(Uint32 Mask) } //Log_Debug("Threads", "Woken from nap (%i here)", SDL_SemValue(gpCurrentThread->EventSem)); } - rv = gpCurrentThread->Events & Mask; - gpCurrentThread->Events &= ~Mask; + rv = gpCurrentThread->EventState & Mask; + gpCurrentThread->EventState &= ~Mask; gpCurrentThread->WaitMask = -1; //Log_Debug("Threads", "- rv = %x", rv); @@ -358,7 +358,7 @@ Uint32 Threads_WaitEvents(Uint32 Mask) void Threads_PostEvent(tThread *Thread, Uint32 Events) { - Thread->Events |= Events; + Thread->EventState |= Events; // Log_Debug("Threads", "Trigger event %x (->Events = %p) on %p", Events, Thread->Events, Thread); if( Events == 0 || Thread->WaitMask & Events ) { @@ -369,6 +369,18 @@ void Threads_PostEvent(tThread *Thread, Uint32 Events) void Threads_ClearEvent(Uint32 EventMask) { - gpCurrentThread->Events &= ~EventMask; + gpCurrentThread->EventState &= ~EventMask; +} + +// -------------------------------------------------------------------- +// Signals +// -------------------------------------------------------------------- +void Threads_PostSignal(int SigNum) +{ + Log_Error("Threads", "TODO: %s", __func__); +} +void Threads_SignalGroup(tPGID PGID, int SignalNum) +{ + Log_Error("Threads", "TODO: %s", __func__); }