mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
2001-01-11 Ulrich Drepper <drepper@redhat.com> * stdlib/Makefile (routines): Add cxa_on_exit. * stdlib/Versions [libc] (GLIBC_2.2.1): Add __cxa_on_exit. * stdlib/cxa_on_exit.c: New file. * include/stdlib.h: Add prototype for __cxa_on_exit. * stdlib/exit.c: Handle ef_cxa2. * stdlib/exit.h (enum): Add ef_cxa2. (struct exit_function): Add cxa2. * Versions.def [ld]: Add GLIBC_2.2.1.
This commit is contained in:
56
linuxthreads/Examples/ex15.c
Normal file
56
linuxthreads/Examples/ex15.c
Normal file
@ -0,0 +1,56 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static void *
|
||||
worker (void *dummy)
|
||||
{
|
||||
exit (26);
|
||||
}
|
||||
|
||||
#define TEST_FUNCTION do_test ()
|
||||
#define TIMEOUT 10
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
pthread_t th;
|
||||
pid_t pid;
|
||||
int status;
|
||||
|
||||
switch ((pid = fork ()))
|
||||
{
|
||||
case -1:
|
||||
puts ("Could not fork");
|
||||
exit (1);
|
||||
case 0:
|
||||
if (pthread_create(&th, NULL, worker, NULL) != 0)
|
||||
{
|
||||
puts ("Failed to start thread");
|
||||
exit (1);
|
||||
}
|
||||
for (;;);
|
||||
exit (1);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (waitpid (pid, &status, 0) != pid)
|
||||
{
|
||||
puts ("waitpid failed");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (!WIFEXITED (status) || WEXITSTATUS (status) != 26)
|
||||
{
|
||||
printf ("Wrong exit code %d\n", status);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
puts ("All OK");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include "../../test-skeleton.c"
|
Reference in New Issue
Block a user