@@ -21,18 +21,19 @@ #include #include #import "runtime.h" +#import "runtime-private.h" #import "threading.h" struct lock_s { - id object; - size_t count; - size_t recursion; - of_thread_t thread; - of_mutex_t mutex; + id object; + size_t count; + size_t recursion; + of_thread_t thread; + of_mutex_t mutex; }; static of_mutex_t mutex; static struct lock_s *locks = NULL; static ssize_t numLocks = 0; @@ -43,14 +44,15 @@ "WARNING: This might result in a race " \ "condition!\n", f, __LINE__); \ return 1; \ } -BOOL -objc_sync_init(void) +static void __attribute__((constructor)) +init(void) { - return of_mutex_new(&mutex); + if (!of_mutex_new(&mutex)) + OBJC_ERROR("Failed to create mutex!") } int objc_sync_enter(id object) {