@@ -18,11 +18,11 @@ #include "objfw-defs.h" #include "platform.h" #if !defined(OF_HAVE_THREADS) || \ - (!defined(OF_HAVE_PTHREADS) && !defined(OF_WINDOWS)) + (!defined(OF_HAVE_PTHREADS) && !defined(OF_WINDOWS) && !defined(OF_AMIGAOS)) # error No mutexes available! #endif #import "macros.h" @@ -30,10 +30,13 @@ # include typedef pthread_mutex_t of_mutex_t; #elif defined(OF_WINDOWS) # include typedef CRITICAL_SECTION of_mutex_t; +#elif defined(OF_AMIGAOS) +# include +typedef struct SignalSemaphore of_mutex_t; #endif #if defined(OF_HAVE_ATOMIC_OPS) # import "atomic.h" typedef volatile int of_spinlock_t; @@ -46,13 +49,15 @@ #ifdef OF_HAVE_SCHED_YIELD # include #endif -#if defined(OF_HAVE_RECURSIVE_PTHREAD_MUTEXES) || defined(OF_WINDOWS) +#if defined(OF_HAVE_RECURSIVE_PTHREAD_MUTEXES) || defined(OF_WINDOWS) || \ + defined(OF_AMIGAOS) # define of_rmutex_t of_mutex_t #else +# import "tlskey.h" typedef struct { of_mutex_t mutex; of_tlskey_t count; } of_rmutex_t; #endif