From 3358c8e5719af6a81a48fa7e7a41176ab0eef7d6 Mon Sep 17 00:00:00 2001 From: mcmartin Date: Sat, 13 Sep 2003 07:30:35 +0000 Subject: [PATCH] XFormControl synchronized with mutexes instead of semaphores Like w_memlib, these are always unlocked at procedure boundaries, so shifting to Mutexes is safe. git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1226 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/src/sc2code/comm.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sc2/src/sc2code/comm.c b/sc2/src/sc2code/comm.c index ba4044d59..f0a8089d1 100644 --- a/sc2/src/sc2code/comm.c +++ b/sc2/src/sc2code/comm.c @@ -479,7 +479,7 @@ static struct { XFORM_CONTROL TaskControl[MAX_XFORMS]; volatile int XFormCurrent, XFormInsertPoint; volatile BOOLEAN XFormsPending; - Semaphore XFormSem; + Mutex XFormLock; } XFormControl; void @@ -487,19 +487,19 @@ init_xform_control (void) { XFormControl.XFormCurrent = XFormControl.XFormInsertPoint = 0; XFormControl.XFormsPending = FALSE; - XFormControl.XFormSem = CreateSemaphore (1, "XForm"); + XFormControl.XFormLock = CreateMutex (); } void uninit_xform_control (void) { - DestroySemaphore (XFormControl.XFormSem); + DestroyMutex (XFormControl.XFormLock); } void xform_complete (void) { - SetSemaphore (XFormControl.XFormSem); + LockMutex (XFormControl.XFormLock); if (XFormControl.XFormsPending) { SetColorMap (XFormControl.TaskControl[XFormControl.XFormCurrent].CMapPtr); @@ -512,7 +512,7 @@ xform_complete (void) XFormControl.XFormsPending = FALSE; } } - ClearSemaphore (XFormControl.XFormSem); + UnlockMutex (XFormControl.XFormLock); } void @@ -646,13 +646,13 @@ XFormPLUT (COLORMAPPTR ColorMapPtr, SIZE TimeInterval) // FlushPLUTXForms (); - SetSemaphore (XFormControl.XFormSem); + LockMutex (XFormControl.XFormLock); while (XFormControl.XFormsPending && (XFormControl.XFormInsertPoint == XFormControl.XFormCurrent)) { - ClearSemaphore (XFormControl.XFormSem); + UnlockMutex (XFormControl.XFormLock); FlushPLUTXForms (); - SetSemaphore (XFormControl.XFormSem); + LockMutex (XFormControl.XFormLock); } control = &XFormControl.TaskControl[XFormControl.XFormInsertPoint]; @@ -672,7 +672,7 @@ XFormPLUT (COLORMAPPTR ColorMapPtr, SIZE TimeInterval) XFormControl.XFormsPending = TRUE; - ClearSemaphore (XFormControl.XFormSem); + UnlockMutex (XFormControl.XFormLock); }