cv_cancel1.c (164898) | cv_cancel1.c (164899) |
---|---|
1/*- 2 * Copyright (c) 2006, David Xu <davidxu@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2006, David Xu <davidxu@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/tools/regression/pthread/cv_cancel1/cv_cancel1.c 164898 2006-12-05 05:14:56Z davidxu $ | 26 * $FreeBSD: head/tools/regression/pthread/cv_cancel1/cv_cancel1.c 164899 2006-12-05 05:31:49Z davidxu $ |
27 * 28 */ 29#include <pthread.h> 30#include <stdio.h> 31 32#define NLOOPS 10 33 34pthread_mutex_t m; --- 33 unchanged lines hidden (view full) --- 68 wake = 1; 69 pthread_cond_signal(&cv); 70 pthread_cancel(td); 71 pthread_mutex_unlock(&m); 72 stop = 1; 73 result = NULL; 74 pthread_join(td, &result); 75 if (result == PTHREAD_CANCELED) { | 27 * 28 */ 29#include <pthread.h> 30#include <stdio.h> 31 32#define NLOOPS 10 33 34pthread_mutex_t m; --- 33 unchanged lines hidden (view full) --- 68 wake = 1; 69 pthread_cond_signal(&cv); 70 pthread_cancel(td); 71 pthread_mutex_unlock(&m); 72 stop = 1; 73 result = NULL; 74 pthread_join(td, &result); 75 if (result == PTHREAD_CANCELED) { |
76 printf("the condition variable implemention does not\n" | 76 printf("the condition variable implementation does not\n" |
77 "conform to SUSv3, a thread unblocked from\n" 78 "condition variable still can be canceled.\n"); 79 return (1); 80 } 81 } 82 83 printf("OK\n"); 84 return (0); 85} | 77 "conform to SUSv3, a thread unblocked from\n" 78 "condition variable still can be canceled.\n"); 79 return (1); 80 } 81 } 82 83 printf("OK\n"); 84 return (0); 85} |