Differences From Artifact [25e6067bdf]:
- File src/threading.h — part of check-in [1da2e596af] at 2014-07-18 10:47:36 on branch trunk — Split threading.h into threading.m and threading.h (user: js, size: 6113) [annotate] [blame] [check-ins using]
To Artifact [e7a7a55554]:
- File
src/threading.h
— part of check-in
[716b1fc2b3]
at
2014-07-19 09:55:06
on branch trunk
— Don't use C11's noreturn
It causes just too much trouble: It breaks with some old versions of
Clang, where noreturn does not work correctly, and OS X headers break if
noreturn is defined, requiring an ugly and fragile workaround. It's just
not worth the trouble it causes, as the same functionality is available
through __attribute__((__noreturn__)). (user: js, size: 6117) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
85 86 87 88 89 90 91 | # error of_thread_is_current not implemented! # error of_thread_current not implemented! #endif extern bool of_thread_new(of_thread_t *thread, id (*function)(id), id data); extern bool of_thread_join(of_thread_t thread); extern bool of_thread_detach(of_thread_t thread); | | | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | # error of_thread_is_current not implemented! # error of_thread_current not implemented! #endif extern bool of_thread_new(of_thread_t *thread, id (*function)(id), id data); extern bool of_thread_join(of_thread_t thread); extern bool of_thread_detach(of_thread_t thread); extern void OF_NO_RETURN of_thread_exit(void); extern void of_once(of_once_t *control, void (*func)(void)); extern bool of_mutex_new(of_mutex_t *mutex); extern bool of_mutex_lock(of_mutex_t *mutex); extern bool of_mutex_trylock(of_mutex_t *mutex); extern bool of_mutex_unlock(of_mutex_t *mutex); extern bool of_mutex_free(of_mutex_t *mutex); extern bool of_rmutex_new(of_rmutex_t *rmutex); |
︙ | ︙ |