diff options
Diffstat (limited to 'stdlib/stdlib.c')
| -rw-r--r-- | stdlib/stdlib.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/stdlib/stdlib.c b/stdlib/stdlib.c index 0266e788..cb9d2213 100644 --- a/stdlib/stdlib.c +++ b/stdlib/stdlib.c @@ -621,34 +621,4 @@ public void sleep_num(double seconds) nanosleep(&ts, NULL); } -static void use_mutexed(Closure_t fn, void *userdata) -{ - void (*call)(void*, void*) = fn.fn; - struct data_t { - pthread_mutex_t mutex; - char item[0] __attribute__ ((aligned (8))); - }; - pthread_mutex_t *mutex = &((struct data_t*)userdata)->mutex; - pthread_mutex_lock(mutex); - void *mutexed_item = (void*)((struct data_t*)userdata)->item; - call(mutexed_item, fn.userdata); - pthread_mutex_unlock(mutex); -} - -public Closure_t _mutexed(const void *item, size_t size) -{ - struct data_t { - pthread_mutex_t mutex; - char item[size] __attribute__ ((aligned (8))); - }; - struct data_t *userdata = GC_MALLOC(sizeof(struct data_t)); - - pthread_mutex_init(&userdata->mutex, NULL); - memcpy(userdata->item, item, size); - return (Closure_t){ - .fn=(void*)use_mutexed, - .userdata=(void*)userdata, - }; -} - // vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 |
