Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2314 → Rev 2315

/branches/rcu/kernel/test/synch/rcu1.c
36,24 → 36,28
#include <arch.h>
#include <preemption.h>
bool gquiet;
bool called;
 
static void callback(void* data)
{
if (!gquiet)
printf("callback called\n");
called = true;
}
char * test_rcu1(bool quiet)
{
gquiet = quiet;
called = false;
int* p;
rcu_read_lock();
rcu_read_unlock();
rcu_assign_pointer(p,malloc(sizeof(int),0));
if (!quiet)
printf("p:%x\n",rcu_dereference_pointer(p));
rcu_read_unlock();
rcu_sync_callback(&callback, NULL);
if (!quiet)
printf("Callback scheduled\n");
while(!called);
rcu_synchronize();
if (!quiet)
printf("Synchronized\n");