X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=urcu-defer.c;h=3f596ae14882e4a635529baa663312b33b2ad247;hp=28bb18ccc2f33f607f1d9b4dfc9c4c4da4d0eeef;hb=ef84facf4b0c23bd695ca9300055e3ffc9b56006;hpb=6cf3827cf5809fbcee555fb08286ad756be42dad diff --git a/urcu-defer.c b/urcu-defer.c index 28bb18c..3f596ae 100644 --- a/urcu-defer.c +++ b/urcu-defer.c @@ -339,13 +339,15 @@ static void stop_defer_thread(void) assert(!ret); } -void rcu_defer_register_thread(void) +int rcu_defer_register_thread(void) { int was_empty; assert(defer_queue.last_head == 0); assert(defer_queue.q == NULL); defer_queue.q = malloc(sizeof(void *) * DEFER_QUEUE_SIZE); + if (!defer_queue.q) + return -ENOMEM; mutex_lock(&defer_thread_mutex); mutex_lock(&rcu_defer_mutex); @@ -356,6 +358,7 @@ void rcu_defer_register_thread(void) if (was_empty) start_defer_thread(); mutex_unlock(&defer_thread_mutex); + return 0; } void rcu_defer_unregister_thread(void)