diff --git a/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs b/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs
index 385b09ca..a3259fa4 100644
--- a/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs
+++ b/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs
@@ -23,7 +23,7 @@ namespace PepperDash.Essentials
///
/// Prevents post operations from stomping on each other and getting lost
///
- CMutex PostLock = new CMutex();
+ CEvent PostLockEvent = new CEvent(true, true);
CotijaConfig Config;
@@ -211,12 +211,14 @@ namespace PepperDash.Essentials
/// object to be serialized and sent in post body
public void PostToServer(EssentialsRoomBase room, JObject o)
{
- var go = PostLock.WaitForMutex(2000);
- if (!go)
+ var ready = PostLockEvent.Wait(2000);
+ if (!ready)
{
- Debug.Console(0, this, "Mutex not released after 2 seconds. Skipping message");
+ Debug.Console(1, this, "PostToServer failed to enter after 2 seconds. Ignoring");
return;
}
+
+ PostLockEvent.Reset();
try
{
if (Client == null || NeedNewClient)
@@ -242,20 +244,23 @@ namespace PepperDash.Essentials
Debug.Console(1, this, "POST result: {0}", err);
if (err == HTTP_CALLBACK_ERROR.COMPLETED)
+ {
Debug.Console(1, this, "Status Response Code: {0}", r.Code);
+ PostLockEvent.Set();
+ }
else
{
// Try again. This client is hosed.
NeedNewClient = true;
+ PostLockEvent.Set();
PostToServer(room, o);
}
- PostLock.ReleaseMutex();
});
}
catch(Exception e)
{
Debug.Console(1, this, "Error Posting to Server: {0}", e);
- PostLock.ReleaseMutex();
+ PostLockEvent.Set();
}
}
diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz
index 887f8efa..fb23a39f 100644
Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ
diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll
index 02f9ae37..29f8579a 100644
Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ