This is the output from examples/ostest executed on this platform on March 9, 2007 ======================================================== Standard I/O Check: write fd=1 Standard I/O Check: write fd=2 user_start: Standard I/O Check: printf user_start: Started user_main at PID=2 user_start: Standard I/O Check: fprintf to stderr user_main: Started with argc=5 user_main: argv[0]="no name" user_main: argv[1]="Arg1" user_main: argv[2]="Arg2" user_main: argv[3]="Arg3" user_main: argv[4]="Arg4" dev_null: Read 0 bytes from /dev/null dev_null: Wrote 1024 bytes to /dev/null Initializing mutex Starting thread 1 Starting thread 2 Thread1 Thread2 Loops 32 32 Errors 0 0 cancel_test: Test 1: Normal Cancelation cancel_test: Starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread thread_waiter: Taking mutex thread_waiter: Starting wait for condition start_thread: Yielding cancel_test: Canceling thread cancel_test: Joining cancel_test: waiter exited with result=ffffffff cancel_test: PASS thread terminated with PTHREAD_CANCELED cancel_test: Test 2: Cancelation of detached thread cancel_test: Re-starting thread restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread thread_waiter: Taking mutex thread_waiter: Starting wait for condition start_thread: Yielding cancel_test: Canceling thread cancel_test: Joining cancel_test: PASS pthread_join failed with status=ESRCH cancel_test: Test 3: Non-cancelable threads cancel_test: Re-starting thread (non-cancelable) restart_thread: Destroying cond restart_thread: Destroying mutex restart_thread: Re-starting thread start_thread: Initializing mutex start_thread: Initializing cond start_thread: Starting thread thread_waiter: Taking mutex thread_waiter: Starting wait for condition thread_waiter: Setting non-cancelable start_thread: Yielding cancel_test: Canceling thread sem_test: Initializing semaphore to 0 sem_test: Starting waiter thread 1 sem_test: Set thread 1 priority to 191 waiter_func: Thread 1 Started waiter_func: Thread 1 initial semaphore value = 0 waiter_func: Thread 1 aiting on semaphore thread_waiter: Releasing mutex thread_waiter: Setting cancelable sem_test: Starting waiter thread 2 sem_test: Set thread 2 priority to 128 waiter_func: Thread 2 Started waiter_func: Thread 2 initial semaphore value = 4294967295 waiter_func: Thread 2 aiting on semaphore sem_test: Starting poster thread 3 sem_test: Set thread 3 priority to 64 poster_func: Thread 3 started poster_func: Thread 3 semaphore value = 4294967294 poster_func: Thread 3 posting semaphore waiter_func: Thread 1 awakened waiter_func: Thread 1 new semaphore value = 4294967295 waiter_func: Thread 1 done poster_func: Thread 3 new semaphore value = 4294967295 poster_func: Thread 3 semaphore value = 4294967295 poster_func: Thread 3 posting semaphore waiter_func: Thread 2 awakened waiter_func: Thread 2 new semaphore value = 0 waiter_func: Thread 2 done poster_func: Thread 3 new semaphore value = 0 poster_func: Thread 3 done cond_test: Initializing mutex cond_test: Initializing cond cond_test: Starting waiter cond_test: Set thread 1 priority to 128 waiter_thread: Started cond_test: Starting signaler cond_test: Set thread 2 priority to 64 thread_signaler: Started thread_signaler: Terminating cond_test: signaler terminated, now cancel the waiter cond_test: Waiter Signaler cond_test: Loops 32 32 cond_test: Errors 0 0 cond_test: 0 times, waiter did not have to wait for data cond_test: 0 times, data was already available when the signaler run cond_test: 0 times, the waiter was in an unexpected state when the signaler ran thread_waiter: Initializing mutex timedwait_test: Initializing cond timedwait_test: Starting waiter timedwait_test: Set thread 2 priority to 177 thread_waiter: Taking mutex thread_waiter: Starting 5 second wait for condition timedwait_test: Joining thread_waiter: pthread_cond_timedwait timed out thread_waiter: Releasing mutex thread_waiter: Exit with status 0x12345678 timedwait_test: waiter exited with result=12345678 mqueue_test: Starting receiver mqueue_test: Set receiver priority to 128 receiver_thread: Starting mqueue_test: Starting sender mqueue_test: Set sender thread priority to 64 sender_thread: Starting receiver_thread: mq_receive succeeded on msg 0 sender_thread: mq_send succeeded on msg 0 receiver_thread: mq_receive succeeded on msg 1 sender_thread: mq_send succeeded on msg 1 receiver_thread: mq_receive succeeded on msg 2 sender_thread: mq_send succeeded on msg 2 receiver_thread: mq_receive succeeded on msg 3 sender_thread: mq_send succeeded on msg 3 receiver_thread: mq_receive succeeded on msg 4 sender_thread: mq_send succeeded on msg 4 receiver_thread: mq_receive succeeded on msg 5 sender_thread: mq_send succeeded on msg 5 receiver_thread: mq_receive succeeded on msg 6 sender_thread: mq_send succeeded on msg 6 receiver_thread: mq_receive suscceeded on msg 7 ender_thread: mq_send succeeded on msg 7 receiver_thread: mq_receive succeeded on msg 8 sender_thread: mq_send succeeded on msg 8 receiver_thread: mq_receive succeeded on msg 9 sender_thread: mq_send succeeded on msg 9 sender_thread: returning nerrors=0 waiter_main: Initializing semaphore to 0 sighand_test: Starting waiter task sighand_test: Started waiter_main pid=16 wakeup_action: Waiter started waiter_main: Unmasking signal 17 waiter_main: Registering signal handler waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0 waiter_main: Waiting on semaphore sighand_test: Signaling pid=16 with signo=17 sigvalue=42 wakeup_action: Received signal 17 wakeup_action: sival_int=42 wakeup_action: si_code=0 wakeup_action: ucontext=0 waiter_main: sem_wait() successfully interrupted by signal waiter_main: done sighand_test: done user_main: Exitting