summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bin/NPClient.dllbin16384 -> 16384 bytes
-rw-r--r--bin/NPClient64.dllbin17408 -> 17408 bytes
-rw-r--r--contrib/npclient/npclient.c6
3 files changed, 3 insertions, 3 deletions
diff --git a/bin/NPClient.dll b/bin/NPClient.dll
index ddfa667e..54a2d0f6 100644
--- a/bin/NPClient.dll
+++ b/bin/NPClient.dll
Binary files differ
diff --git a/bin/NPClient64.dll b/bin/NPClient64.dll
index eb56a256..f8315d50 100644
--- a/bin/NPClient64.dll
+++ b/bin/NPClient64.dll
Binary files differ
diff --git a/contrib/npclient/npclient.c b/contrib/npclient/npclient.c
index 6ffa7f34..71c5ec2a 100644
--- a/contrib/npclient/npclient.c
+++ b/contrib/npclient/npclient.c
@@ -332,19 +332,19 @@ NP_EXPORT(int) NP_GetData(tir_data_t * data)
frameno++;
data->frame = frameno;
- int data_id = InterlockedDecrement((LONG volatile*) &pMemData->data.DataID);
-
+ int data_id = InterlockedCompareExchange((LONG volatile*) &pMemData->data.DataID, -1, -1);
bool running;
if (data_id == 0)
{
running = true;
y = 0, r = 0, p = 0, tx = 0, ty = 0, tz = 0;
- InterlockedCompareExchange((LONG volatile*) &pMemData->data.DataID, -1, 0);
+ (void)InterlockedCompareExchange((LONG volatile*) &pMemData->data.DataID, -1, 0);
}
else if (data_id > 0)
{
running = true;
+ (void)InterlockedCompareExchange((LONG volatile*) &pMemData->data.DataID, data_id - 1, data_id);
}
else
{