/* * Copyright (c) 2002, Intel Corporation. All rights reserved. * Created by: rolla.n.selbak REMOVE-THIS AT intel DOT com * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. * * int pthread_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void)) * * If no handling is desired at one or more of these three points, the corresponding fork * handler address(es) may be set to NULL. * * STEPS: * 1. Call pthread_atfork() with all NULL paramters * 2. Check to make sure the function returns success * */ #include #include #include #include #include #include #include #include #include "posixtest.h" int main () { pid_t pid; int ret; /* Set up the fork handlers */ ret = pthread_atfork(NULL, NULL, NULL); if(ret != 0) { if(ret == ENOMEM) { printf("Error: ran out of memory\n"); return PTS_UNRESOLVED; } printf("Test FAILED: Expected return value success, instead received %d\n", ret); return PTS_FAIL; } /* Now call fork() to make sure everything goes smoothly */ pid = fork(); if(pid < 0) { perror("Error in fork()\n"); return PTS_UNRESOLVED; } if(pid == 0) { /* Child process */ pthread_exit(0); } else { /* Parent process */ wait(NULL); } printf("Test PASSED\n"); return PTS_PASS; }