1 #include "tls_test_frame.h"
2 
3 /* Wait for child processed ignoring signals. */
tls_test_uninterruptable_wait(pid_t * pid_ptr,INT * exit_status_ptr)4 INT tls_test_uninterruptable_wait( pid_t* pid_ptr, INT* exit_status_ptr)
5 {
6     /* Check for pointers. */
7     return_value_if_fail( NULL != pid_ptr, TLS_TEST_INVALID_POINTER);
8     return_value_if_fail( NULL != exit_status_ptr, TLS_TEST_INVALID_POINTER);
9 
10     /* Wait for child process terminations and restart wait if interrupted by signals. */
11     while ( ( *pid_ptr = wait( exit_status_ptr)) == -1 && (errno == EINTR));
12 
13     /* Check for return value. */
14     if ( -1 == *pid_ptr)
15         return TLS_TEST_SYSTEM_CALL_FAILED;
16 
17     return TLS_TEST_SUCCESS;
18 }
19