-#ifndef REGTEST\r
-#include <threads.h>\r
-#include <windows.h>\r
-\r
-int mtx_lock(mtx_t *mtx)\r
-{\r
- DWORD myId = GetCurrentThreadId();\r
-\r
- if(mtx->_ThreadId == myId) {\r
- mtx->_NestCount++;\r
- return thrd_success;\r
- }\r
-\r
- for(;;) {\r
- LONG prev = InterlockedCompareExchange(&mtx->_ThreadId, myId, 0);\r
- if(prev == 0)\r
- return thrd_success;\r
-\r
- DWORD rv = WaitForSingleObject(mtx->_WaitEvHandle, INFINITE);\r
- if(rv != WAIT_OBJECT_0)\r
- return thrd_error;\r
- }\r
-}\r
-#endif\r
-\r
-#ifdef TEST\r
-#include <_PDCLIB_test.h>\r
-\r
-int main( void )\r
-{\r
- return TEST_RESULTS;\r
-}\r
-\r
+#ifndef REGTEST
+#include <threads.h>
+#include <windows.h>
+
+int mtx_lock(mtx_t *mtx)
+{
+ DWORD myId = GetCurrentThreadId();
+
+ if(mtx->_ThreadId == (long) myId) {
+ mtx->_NestCount++;
+ return thrd_success;
+ }
+
+ for(;;) {
+ LONG prev = InterlockedCompareExchange(&mtx->_ThreadId, myId, 0);
+ if(prev == 0)
+ return thrd_success;
+
+ DWORD rv = WaitForSingleObject(mtx->_WaitEvHandle, INFINITE);
+ if(rv != WAIT_OBJECT_0)
+ return thrd_error;
+ }
+}
+#endif
+
+#ifdef TEST
+#include "_PDCLIB_test.h"
+
+int main( void )
+{
+ return TEST_RESULTS;
+}
+
#endif
\ No newline at end of file