* --------------------------------------------------------------------------*/
#ifndef __OSTHREADS_H__
#define __OSTHREADS_H__
-#if defined(RTS_SUPPORTS_THREADS) /*to the end */
+#if defined(RTS_SUPPORTS_THREADS) /* to the end */
# if defined(HAVE_PTHREAD_H) && !defined(WANT_NATIVE_WIN32_THREADS)
# include <pthread.h>
#define INIT_MUTEX_VAR PTHREAD_MUTEX_INITIALIZER
#define INIT_COND_VAR PTHREAD_COND_INITIALIZER
+#ifdef LOCK_DEBUG
+#define ACQUIRE_LOCK(mutex) fprintf(stderr, "ACQUIRE_LOCK(0x%p) %s %d\n", mutex,__FILE__,__LINE__); fflush(stderr); pthread_mutex_lock(mutex)
+#define RELEASE_LOCK(mutex) fprintf(stderr, "RELEASE_LOCK(0x%p) %s %d\n", mutex,__FILE__,__LINE__); fflush(stderr); pthread_mutex_unlock(mutex)
+#else
#define ACQUIRE_LOCK(mutex) pthread_mutex_lock(mutex)
#define RELEASE_LOCK(mutex) pthread_mutex_unlock(mutex)
+#endif
# elif defined(HAVE_WINDOWS_H)
#include <windows.h>
#define INIT_MUTEX_VAR 0
#define INIT_COND_VAR 0
-#define ACQURE_LOCK(mutex) WaitForSingleObject(mutex,INFINITE)
-#define RELEASE_LOCK(mutex) ReleaseMutex(handle)
-#define
+#define ACQUIRE_LOCK(mutex) WaitForSingleObject(mutex,INFINITE)
+#define RELEASE_LOCK(mutex) ReleaseMutex(mutex)
# else
# error "Threads not supported"
# endif