The call in the new thread is: sigev->sigev_notify_function (sigev->sigev_value); The program you sent does not exercise a case where sigev_notify_function is used and the value of sigev_value can be seen. Are you saying it does not work right? Please show a test program that actually does what you say fails. Thanks, Roland