static void * worker (void *arg) { ACE_Recursive_Thread_Mutex *rm = (ACE_Recursive_Thread_Mutex *) arg; recursive_worker (0, rm); return 0; }
static void recursive_worker (size_t nesting_level, ACE_Recursive_Thread_Mutex *rm) { if (nesting_level < n_iterations) { ACE_ASSERT (rm->acquire () == 0); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) = acquired, nesting = %d, thread id = %u\n"), rm->get_nesting_level (), rm->get_thread_id ())); recursive_worker (nesting_level + 1, rm); ACE_ASSERT (rm->release () == 0); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) = released, nesting = %d, thread id = %u\n"), rm->get_nesting_level (), rm->get_thread_id ())); } }
static void recursive_worker (size_t nesting_level, ACE_Recursive_Thread_Mutex *rm) { if (nesting_level < n_iterations) { ACE_DEBUG ((LM_DEBUG, "(%P|%t) = trying to acquire, nesting = %d, thread id = %u\n", rm->get_nesting_level (), rm->get_thread_id ())); { // This illustrates the use of the ACE_GUARD with an // ACE_Recursive_Thread_Mutex. ACE_GUARD (ACE_Recursive_Thread_Mutex, ace_mon, *rm); ACE_DEBUG ((LM_DEBUG, "(%P|%t) = acquired, nesting = %d, thread id = %u\n", rm->get_nesting_level (), rm->get_thread_id ())); recursive_worker (nesting_level + 1, rm); } ACE_DEBUG ((LM_DEBUG, "(%P|%t) = released, nesting = %d, thread id = %u\n", rm->get_nesting_level (), rm->get_thread_id ())); } }