Differences From Artifact [1fbcc9555d]:
- File
src/runtime/threading.m
— part of check-in
[44f45c2e35]
at
2017-01-09 17:36:36
on branch trunk
— Update copyright
Forgot to add 2017, even though I already did quite some changes in
2017. (user: js, size: 1186) [annotate] [blame] [check-ins using] [more...]
To Artifact [e057f37307]:
- File
src/runtime/threading.m
— part of check-in
[79011c5f56]
at
2017-06-07 21:38:21
on branch trunk
— runtime: Move all globals into a single struct
This is required to create a .library on MorphOS. (user: js, size: 1242) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
19 20 21 22 23 24 25 | #include <stdio.h> #include <stdlib.h> #import "runtime.h" #import "runtime-private.h" #import "threading.h" | > | | | | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <stdio.h> #include <stdlib.h> #import "runtime.h" #import "runtime-private.h" #import "threading.h" #import "globals.h" #define global_mutex objc_globals.global_mutex #define global_once_control objc_globals.global_once_control static void init(void) { if (!of_rmutex_new(&global_mutex)) OBJC_ERROR("Failed to create global mutex!"); } void objc_global_mutex_lock(void) { of_once(&global_once_control, init); if (!of_rmutex_lock(&global_mutex)) OBJC_ERROR("Failed to lock global mutex!"); } void objc_global_mutex_unlock(void) { if (!of_rmutex_unlock(&global_mutex)) OBJC_ERROR("Failed to unlock global mutex!"); } |