set_affinity();
rcu_register_thread();
+ assert(!rcu_read_ongoing());
while (!test_go)
{
for (;;) {
rcu_read_lock();
+ assert(rcu_read_ongoing());
local_ptr = rcu_dereference(test_rcu_pointer);
rcu_debug_yield_read();
if (local_ptr)
void show_usage(int argc, char **argv)
{
- printf("Usage : %s nr_readers nr_writers duration (s)", argv[0]);
+ printf("Usage : %s nr_readers nr_writers duration (s) <OPTIONS>\n",
+ argv[0]);
+ printf("OPTIONS:\n");
#ifdef DEBUG_YIELD
- printf(" [-r] [-w] (yield reader and/or writer)");
+ printf(" [-r] [-w] (yield reader and/or writer)\n");
#endif
- printf(" [-d delay] (writer period (us))");
- printf(" [-c duration] (reader C.S. duration (in loops))");
- printf(" [-e duration] (writer C.S. duration (in loops))");
- printf(" [-v] (verbose output)");
- printf(" [-a cpu#] [-a cpu#]... (affinity)");
+ printf(" [-d delay] (writer period (us))\n");
+ printf(" [-c duration] (reader C.S. duration (in loops))\n");
+ printf(" [-e duration] (writer C.S. duration (in loops))\n");
+ printf(" [-v] (verbose output)\n");
+ printf(" [-a cpu#] [-a cpu#]... (affinity)\n");
printf("\n");
}