101,7 → 101,7 |
#ifdef CONFIG_SMP |
waitq_t wq; |
waitq_initialize(&wq); |
rcu_sync_callback(&rcu_synchronize_callback_function, &wq); |
rcu_sync_callback_normal_alloc(&rcu_synchronize_callback_function, &wq); |
//sleep until the end of the grace period |
waitq_sleep(&wq); |
#endif |
123,7 → 123,7 |
* is handled in rcu_run_callbacks and in the tasklet. This is a lock free variant, |
* which must be supplied with a preallocated rcu_callback_list_t structure |
*/ |
void rcu_sync_callback_custom_alloc(void (*func)(void* data), void* data, rcu_callback_list_t* rd) |
void rcu_sync_callback(void (*func)(void* data), void* data, rcu_callback_list_t* rd) |
{ |
#ifndef CONFIG_SMP |
func(data); |
240,3 → 240,12 |
} |
|
|
/** |
* Generic callback for RCU, frees @paramref pointer |
* @param pointer |
*/ |
void rcu_callback_free(void* pointer) |
{ |
free(pointer); |
} |
|