@@ -36,11 +36,11 @@ #import "OFUnlockFailedException.h" #import "socket.h" #import "socket_helpers.h" #ifdef OF_HAVE_THREADS -# ifndef OF_AMIGAOS +# if !defined(OF_AMIGAOS) || defined(OF_MORPHOS) # import "mutex.h" # else # import "tlskey.h" # endif #endif @@ -53,19 +53,19 @@ #ifdef OF_NINTENDO_3DS # include <3ds/types.h> # include <3ds/services/soc.h> #endif -#if defined(OF_HAVE_THREADS) && !defined(OF_AMIGAOS) +#if defined(OF_HAVE_THREADS) && (!defined(OF_AMIGAOS) || defined(OF_MORPHOS)) static of_mutex_t mutex; #endif -#if !defined(OF_AMIGAOS) || !defined(OF_HAVE_THREADS) +#if !defined(OF_AMIGAOS) || defined(OF_MORPHOS) || !defined(OF_HAVE_THREADS) static bool initSuccessful = false; #endif #ifdef OF_AMIGAOS -# ifdef OF_HAVE_THREADS +# if defined(OF_HAVE_THREADS) && !defined(OF_MORPHOS) of_tlskey_t of_socket_base_key; # ifdef OF_AMIGAOS4 of_tlskey_t of_socket_interface_key; # endif # else @@ -74,11 +74,11 @@ struct SocketIFace *ISocket = NULL; # endif # endif #endif -#if defined(OF_HAVE_THREADS) && defined(OF_AMIGAOS) +#if defined(OF_HAVE_THREADS) && defined(OF_AMIGAOS) && !defined(OF_MORPHOS) OF_CONSTRUCTOR() { if (!of_tlskey_new(&of_socket_base_key)) @throw [OFInitializationFailedException exception]; @@ -87,11 +87,11 @@ @throw [OFInitializationFailedException exception]; # endif } #endif -#if !defined(OF_AMIGAOS) || !defined(OF_HAVE_THREADS) +#if !defined(OF_AMIGAOS) || defined(OF_MORPHOS) || !defined(OF_HAVE_THREADS) static void init(void) { # if defined(OF_WINDOWS) WSADATA wsa; @@ -122,11 +122,11 @@ return; atexit((void (*)(void))socExit); # endif -# if defined(OF_HAVE_THREADS) && !defined(OF_AMIGAOS) +# if defined(OF_HAVE_THREADS) && (!defined(OF_AMIGAOS) || defined(OF_MORPHOS)) if (!of_mutex_new(&mutex)) return; # ifdef OF_WII if (!of_spinlock_new(&spinlock)) @@ -152,11 +152,11 @@ #endif bool of_socket_init(void) { -#if !defined(OF_AMIGAOS) || !defined(OF_HAVE_THREADS) +#if !defined(OF_AMIGAOS) || defined(OF_MORPHOS) || !defined(OF_HAVE_THREADS) static of_once_t onceControl = OF_ONCE_INIT; of_once(&onceControl, init); return initSuccessful; #else @@ -201,11 +201,11 @@ return true; #endif } -#if defined(OF_HAVE_THREADS) && defined(OF_AMIGAOS) +#if defined(OF_HAVE_THREADS) && defined(OF_AMIGAOS) && !defined(OF_MORPHOS) void of_socket_deinit(void) { struct Library *socketBase = of_tlskey_get(of_socket_base_key); # ifdef OF_AMIGAOS4 @@ -326,19 +326,19 @@ of_getsockname(of_socket_t sock, struct sockaddr *restrict addr, socklen_t *restrict addrLen) { int ret; -# if defined(OF_HAVE_THREADS) && !defined(OF_AMIGAOS) +# if defined(OF_HAVE_THREADS) && (!defined(OF_AMIGAOS) || defined(OF_MORPHOS)) if (!of_mutex_lock(&mutex)) @throw [OFLockFailedException exception]; # endif ret = getsockname(sock, addr, addrLen); -# if defined(OF_HAVE_THREADS) && !defined(OF_AMIGAOS) +# if defined(OF_HAVE_THREADS) && (!defined(OF_AMIGAOS) || defined(OF_MORPHOS)) if (!of_mutex_unlock(&mutex)) @throw [OFUnlockFailedException exception]; # endif return ret;