thr_error.c (113942) | thr_error.c (139023) |
---|---|
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 113942 2003-04-23 21:46:50Z deischen $ | 34 * $FreeBSD: head/lib/libkse/sys/thr_error.c 139023 2004-12-18 18:07:37Z deischen $ |
35 */ 36#include <pthread.h> 37#include "libc_private.h" 38#include "thr_private.h" 39 | 35 */ 36#include <pthread.h> 37#include "libc_private.h" 38#include "thr_private.h" 39 |
40#undef errno |
|
40extern int errno; 41 42int * 43__error(void) 44{ 45 struct pthread *curthread; 46 47 if (__isthreaded == 0) 48 return (&errno); 49 else if (_kse_in_critical()) 50 return &(_get_curkse()->k_error); 51 else { 52 curthread = _get_curthread(); 53 if ((curthread == NULL) || (curthread == _thr_initial)) 54 return (&errno); 55 else 56 return (&curthread->error); 57 } 58} | 41extern int errno; 42 43int * 44__error(void) 45{ 46 struct pthread *curthread; 47 48 if (__isthreaded == 0) 49 return (&errno); 50 else if (_kse_in_critical()) 51 return &(_get_curkse()->k_error); 52 else { 53 curthread = _get_curthread(); 54 if ((curthread == NULL) || (curthread == _thr_initial)) 55 return (&errno); 56 else 57 return (&curthread->error); 58 } 59} |