thr_error.c (109772) | thr_error.c (113657) |
---|---|
1/* 2 * Copyright (c) 1995 John Birrell <jb@cimlogic.com.au>. 3 * Copyright (c) 1994 by Chris Provenzano, proven@mit.edu 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 * | 1/* 2 * Copyright (c) 1995 John Birrell <jb@cimlogic.com.au>. 3 * Copyright (c) 1994 by Chris Provenzano, proven@mit.edu 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 17 unchanged lines hidden (view full) --- 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 * |
34 * $FreeBSD: head/lib/libkse/sys/thr_error.c 109772 2003-01-24 01:46:30Z fjoe $ | 34 * $FreeBSD: head/lib/libkse/sys/thr_error.c 113657 2003-04-18 05:02:39Z deischen $ |
35 */ 36#include <pthread.h> | 35 */ 36#include <pthread.h> |
37#include "libc_private.h" |
|
37#include "thr_private.h" 38extern int errno; 39 40int * __error() 41{ | 38#include "thr_private.h" 39extern int errno; 40 41int * __error() 42{ |
42 int *p_errno; 43 if (_thread_run == _thread_initial) { 44 p_errno = &errno; 45 } else { 46 p_errno = &_thread_run->error; | 43 struct pthread *curthread; 44 45 if (__isthreaded == 0) 46 return (&errno); 47 else { 48 curthread = _get_curthread(); 49 if ((curthread == NULL) || (curthread == _thr_initial)) 50 return (&errno); 51 else 52 return (&curthread->error); |
47 } | 53 } |
48 return(p_errno); | |
49} | 54} |