1213155Sdavidxu/* $FreeBSD$ */ 2213155Sdavidxu/* Test stack unwinding for libc's sem */ 3213155Sdavidxu 4213155Sdavidxu#include <pthread.h> 5213155Sdavidxu#include <stdio.h> 6213155Sdavidxu#include <semaphore.h> 7213155Sdavidxu#include <unistd.h> 8213155Sdavidxu 9213155Sdavidxu#include "Test.cpp" 10213155Sdavidxu 11213155Sdavidxusem_t sem; 12213155Sdavidxu 13213155Sdavidxuvoid * 14213155Sdavidxuthr(void *arg) 15213155Sdavidxu{ 16213155Sdavidxu Test t; 17213155Sdavidxu 18213155Sdavidxu sem_wait(&sem); 19213155Sdavidxu printf("Bug, thread shouldn't be here.\n"); 20213155Sdavidxu return (0); 21213155Sdavidxu} 22213155Sdavidxu 23213155Sdavidxuint 24213155Sdavidxumain() 25213155Sdavidxu{ 26213155Sdavidxu pthread_t td; 27213155Sdavidxu 28213155Sdavidxu sem_init(&sem, 0, 0); 29213155Sdavidxu pthread_create(&td, NULL, thr, NULL); 30213155Sdavidxu sleep(1); 31213155Sdavidxu pthread_cancel(td); 32213155Sdavidxu pthread_join(td, NULL); 33213155Sdavidxu check_destruct(); 34213155Sdavidxu return (0); 35213155Sdavidxu} 36