head 1.40; access; symbols PTH_2_0_7:1.39 PTH_2_0_6:1.38 PTH_2_0_5:1.38 PTH_2_0_4:1.38 PTH_2_0_3:1.37 PTH_2_0_2:1.37 PTH_2_0_1:1.37 PTH_2_0_0:1.36 PTH_2_0b2:1.35 PTH_2_0b1:1.34 PTH_2_0b0:1.34 PTH_1_4:1.29.0.2 PTH_1_4_1:1.29 PTH_1_4_0:1.28 PTH_1_3_7:1.24.2.1 PTH_1_4a3:1.26 PTH_1_3_6:1.24.2.1 PTH_1_4a2:1.26 PTH_1_3_5:1.24 PTH_1_4a1:1.25 PTH_1_3_4:1.24 PTH_1_3:1.24.0.2 PTH_1_3_3:1.24 PTH_1_3_2:1.24 PTH_1_3_1:1.24 PTH_1_3_0:1.24 PTH_1_3b3:1.24 PTH_1_2_3:1.21.2.1 PTH_1_3b2:1.24 PTH_1_3b1:1.24 PTH_1_3a5:1.24 PTH_1_3a4:1.24 PTH_1_3a3:1.24 PTH_1_2_2:1.21.2.1 PTH_1_3a2:1.23 PTH_1_2_1:1.21.2.1 PTH_1_3a1:1.22 PTH_1_2:1.21.0.2 PTH_1_2_0:1.21 PTH_1_2b8:1.20 PTH_1_2b7:1.20 PTH_1_1_6:1.17 PTH_1_2b6:1.19 PTH_1_2b5:1.19 PTH_1_2b4:1.19 PTH_1_2b3:1.19 PTH_1_2b2:1.18 PTH_1_2b1:1.17 PTH_1_1_5:1.17 PTH_1_0_6:1.13 PTH_1_0_5:1.13 PTH_1_0:1.13.0.2 PTH_1_1:1.17.0.2 PTH_1_1_4:1.17 PTH_1_1_3:1.17 PTH_1_1_2:1.17 PTH_1_1_1:1.17 PTH_1_1_0:1.17 PTH_1_1b7:1.17 PTH_1_1b6:1.17 PTH_1_1b5:1.17 PTH_1_1b4:1.16 PTH_1_1b3:1.16 PTH_1_1b2:1.16 PTH_1_1b1:1.16 PTH_1_0_4:1.13 PTH_1_0_3:1.13 PTH_1_0_2:1.13 PTH_1_0_1:1.12 PTH_1_0_0:1.12 PTH_1_0b8:1.11 PTH_1_0b7:1.11 PTH_1_0b6:1.11 PTH_1_0b5:1.11 PTH_1_0b4:1.8 PTH_1_0b3:1.6 PTH_1_0b2:1.6 PTH_1_0b1:1.5 PTH_0_9_21:1.5 PTH_0_9_20:1.5 PTH_0_9_19:1.4 PTH_0_9_18:1.4 PTH_0_9_17:1.4 PTH_0_9_16:1.4 PTH_0_9_15:1.4 PTH_0_9_14:1.4 PTH_0_9_13:1.4 PTH_0_9_12:1.3 PTH_0_9_11:1.3 PTH_0_9_10:1.3; locks; strict; comment @# @; 1.40 date 2007.01.01.18.23.53; author rse; state Exp; branches; next 1.39; commitid 9DhdiirNzQPBIP0s; 1.39 date 2006.06.08.17.54.53; author rse; state Exp; branches; next 1.38; commitid x8N3mLVdQgkbdeAr; 1.38 date 2004.12.31.19.34.45; author rse; state Exp; branches; next 1.37; 1.37 date 2004.07.13.10.50.49; author rse; state Exp; branches; next 1.36; 1.36 date 2003.01.01.15.49.12; author rse; state Exp; branches; next 1.35; 1.35 date 2002.11.29.17.58.18; author rse; state Exp; branches; next 1.34; 1.34 date 2002.10.24.09.07.51; author rse; state Exp; branches; next 1.33; 1.33 date 2002.10.23.14.04.00; author rse; state Exp; branches; next 1.32; 1.32 date 2002.10.20.11.45.10; author rse; state Exp; branches; next 1.31; 1.31 date 2002.01.30.13.34.40; author rse; state Exp; branches; next 1.30; 1.30 date 2002.01.30.13.07.08; author rse; state Exp; branches; next 1.29; 1.29 date 2002.01.27.11.03.40; author rse; state Exp; branches; next 1.28; 1.28 date 2001.03.24.14.51.04; author rse; state Exp; branches; next 1.27; 1.27 date 2000.10.03.09.26.47; author rse; state Exp; branches; next 1.26; 1.26 date 2000.07.01.12.40.51; author rse; state Exp; branches; next 1.25; 1.25 date 2000.03.12.16.47.39; author rse; state Exp; branches; next 1.24; 1.24 date 2000.01.06.15.45.23; author rse; state Exp; branches 1.24.2.1; next 1.23; 1.23 date 99.12.30.21.59.00; author rse; state Exp; branches; next 1.22; 1.22 date 99.11.01.10.27.19; author rse; state Exp; branches; next 1.21; 1.21 date 99.10.31.11.46.13; author rse; state Exp; branches 1.21.2.1; next 1.20; 1.20 date 99.10.04.15.06.35; author rse; state Exp; branches; next 1.19; 1.19 date 99.09.17.08.01.55; author rse; state Exp; branches; next 1.18; 1.18 date 99.09.04.12.32.41; author rse; state Exp; branches; next 1.17; 1.17 date 99.08.15.15.20.35; author rse; state Exp; branches 1.17.2.1; next 1.16; 1.16 date 99.08.07.12.05.26; author rse; state Exp; branches; next 1.15; 1.15 date 99.08.05.14.24.35; author rse; state Exp; branches; next 1.14; 1.14 date 99.08.03.12.24.03; author rse; state Exp; branches; next 1.13; 1.13 date 99.07.24.13.25.17; author rse; state Exp; branches; next 1.12; 1.12 date 99.07.16.09.57.11; author rse; state Exp; branches; next 1.11; 1.11 date 99.07.10.15.20.03; author rse; state Exp; branches; next 1.10; 1.10 date 99.07.10.15.14.47; author rse; state Exp; branches; next 1.9; 1.9 date 99.07.10.14.21.17; author rse; state Exp; branches; next 1.8; 1.8 date 99.07.08.10.34.01; author rse; state Exp; branches; next 1.7; 1.7 date 99.07.08.10.19.11; author rse; state Exp; branches; next 1.6; 1.6 date 99.07.04.12.05.35; author rse; state Exp; branches; next 1.5; 1.5 date 99.06.24.11.25.07; author rse; state Exp; branches; next 1.4; 1.4 date 99.06.01.09.55.26; author rse; state Exp; branches; next 1.3; 1.3 date 99.05.28.10.16.17; author rse; state Exp; branches; next 1.2; 1.2 date 99.05.28.10.11.37; author rse; state Exp; branches; next 1.1; 1.1 date 99.05.28.09.05.12; author rse; state Exp; branches; next ; 1.24.2.1 date 2000.07.01.14.07.10; author rse; state Exp; branches; next ; 1.21.2.1 date 99.11.01.10.25.01; author rse; state Exp; branches; next ; 1.17.2.1 date 99.10.18.11.00.47; author rse; state Exp; branches; next ; desc @@ 1.40 log @Adjusted all copyright messages for new year 2007. @ text @/* ** GNU Pth - The GNU Portable Threads ** Copyright (c) 1999-2007 Ralf S. Engelschall ** ** This file is part of GNU Pth, a non-preemptive thread scheduling ** library which can be found at http://www.gnu.org/software/pth/. ** ** This library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public ** License as published by the Free Software Foundation; either ** version 2.1 of the License, or (at your option) any later version. ** ** This library is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this library; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 ** USA, or contact Ralf S. Engelschall . ** ** pth_p.h: Pth private API definitions */ #ifndef _PTH_P_H_ #define _PTH_P_H_ /* mandatory system headers */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* library version */ #define _PTH_VERS_C_AS_HEADER_ #include "pth_vers.c" #undef _PTH_VERS_C_AS_HEADER_ /* public API headers */ #define _PTH_PRIVATE #include "pth.h" #undef _PTH_PRIVATE /* autoconf defines and macros */ #include "pth_acdef.h" #include "pth_acmac.h" /* optional system headers */ #ifdef HAVE_SYS_RESOURCE_H #include #endif #ifdef HAVE_NET_ERRNO_H #include #endif #ifdef HAVE_DLFCN_H #include #endif /* dmalloc support */ #ifdef PTH_DMALLOC #include #endif /* OSSP ex support */ #ifdef PTH_EX #define __EX_NS_USE_CUSTOM__ #include "ex.h" #endif /* paths */ #ifdef HAVE_PATHS_H #include #endif #ifdef _PATH_BSHELL #define PTH_PATH_BINSH _PATH_BSHELL #else #define PTH_PATH_BINSH "/bin/sh" #endif /* non-blocking flags */ #ifdef O_NONBLOCK #define O_NONBLOCKING O_NONBLOCK #else #ifdef O_NDELAY #define O_NONBLOCKING O_NDELAY #else #ifdef FNDELAY #define O_NONBLOCKING FNDELAY #else #error "No O_NONBLOCK, O_NDELAY or FNDELAY flag available!" #endif #endif #endif /* fallback definition for fdset_t size */ #if !defined(FD_SETSIZE) #define FD_SETSIZE 1024 #endif /* fallback definition for struct timespec */ #ifndef HAVE_STRUCT_TIMESPEC struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* and nanoseconds */ }; #endif /* compiler happyness: avoid ``empty compilation unit'' problem */ #define COMPILER_HAPPYNESS(name) \ int __##name##_unit = 0; /* generated contents */ BEGIN_DECLARATION ==#== END_DECLARATION #endif /* _PTH_P_H_ */ @ 1.39 log @Adjusted all copyright messages for new year 2006 @ text @d3 1 a3 1 ** Copyright (c) 1999-2006 Ralf S. Engelschall @ 1.38 log @Adjusted all copyright messages for new year 2005. @ text @d3 1 a3 1 ** Copyright (c) 1999-2005 Ralf S. Engelschall @ 1.37 log @Adjusted all copyright messages for new year 2004. @ text @d3 1 a3 1 ** Copyright (c) 1999-2004 Ralf S. Engelschall @ 1.36 log @Adjusted all copyright messages for new year 2003. @ text @d3 1 a3 1 ** Copyright (c) 1999-2003 Ralf S. Engelschall @ 1.35 log @Fixed compiler warnings under Linux: require inclusion of Submitted by: Joseph Wayne Norton @ text @d3 1 a3 1 ** Copyright (c) 1999-2002 Ralf S. Engelschall @ 1.34 log @Added POSIX-compliant sanity checks for bad filedescriptors to mostly all filedescriptor-based I/O functions in pth_high.c @ text @d45 1 @ 1.33 log @Added pth_nanosleep() function. Obtained from: NetBSD, Nick Hudson @ text @d107 5 @ 1.32 log @Completely rewrote the "hard syscall mapping". Previously the internal syscall exit points were based on syscall(2) only. This is problematic because it by-passes the C library glue code which sometimes performs necessary assembly fiddling in order to call the underlying system calls correctly. Additionally, syscall(2) does not exists everywhere. Now the internal exit points are based on a by-syscall dynamically selected combination of RTLD_NEXT+dlsym(2), dlopen(2)+dlsym(2) and the known syscall(2) (in this fallback order). This way the "hard syscall mapping" is a lot more portable and flexible. Initial implementation by: Jonathan Schilling Enhanced implementation by: Ralf S. Engelschall @ text @d107 8 @ 1.31 log @resolve namespace conflict @ text @d67 3 @ 1.30 log @Add optional support for OSSP ex based exception handling. GNU Pth (still) does not throw exceptions by itself, but handles the per-thread exception context of OSSP ex to make exception handling local to a thread. @ text @d75 1 @ 1.29 log @bump copyright year @ text @d73 5 @ 1.28 log @*** empty log message *** @ text @d3 1 a3 1 ** Copyright (c) 1999-2001 Ralf S. Engelschall @ 1.27 log @*** empty log message *** @ text @d3 1 a3 1 ** Copyright (c) 1999-2000 Ralf S. Engelschall @ 1.26 log @*** empty log message *** @ text @d43 1 d71 10 @ 1.25 log @*** empty log message *** @ text @d46 1 a46 1 #define _AS_HEADER d48 1 a48 1 #undef _AS_HEADER @ 1.24 log @*** empty log message *** @ text @d39 1 @ 1.24.2.1 log @*** empty log message *** @ text @d45 1 a45 1 #define _PTH_VERS_C_AS_HEADER_ d47 1 a47 1 #undef _PTH_VERS_C_AS_HEADER_ @ 1.23 log @*** empty log message *** @ text @d66 5 @ 1.22 log @*** empty log message *** @ text @d3 1 a3 1 ** Copyright (c) 1999 Ralf S. Engelschall @ 1.21 log @*** empty log message *** @ text @d2 1 a2 2 ** pth_p.h -- Pth private API definitions ** d22 2 @ 1.21.2.1 log @*** empty log message *** @ text @d2 2 a3 1 ** GNU Pth - The GNU Portable Threads a22 2 ** ** pth_p.h: Pth private API definitions @ 1.20 log @*** empty log message *** @ text @d12 1 a12 1 ** version 2 of the License, or (at your option) any later version. @ 1.19 log @*** empty log message *** @ text @d80 1 a80 1 /* compiler happyness: avoid ``empty compiltion unit'' problem */ @ 1.18 log @*** empty log message *** @ text @d10 1 a10 1 ** modify it under the terms of the GNU Library General Public d17 1 a17 1 ** Library General Public License for more details. d19 1 a19 1 ** You should have received a copy of the GNU Library General Public @ 1.17 log @*** empty log message *** @ text @d28 1 a28 1 /* system headers */ a40 1 #include d56 8 @ 1.17.2.1 log @*** empty log message *** @ text @d73 1 a73 1 /* compiler happyness: avoid ``empty compilation unit'' problem */ @ 1.16 log @*** empty log message *** @ text @d73 4 @ 1.15 log @*** empty log message *** @ text @d54 3 a56 2 /* Autoconf results */ #include "pth_conf.h" d58 1 a58 1 /* Non-Blocking flags */ @ 1.14 log @*** empty log message *** @ text @d72 2 d75 1 @ 1.13 log @*** empty log message *** @ text @d57 15 @ 1.12 log @*** empty log message *** @ text @d25 2 a26 2 #ifndef _PTH_P_H #define _PTH_P_H d59 1 a59 1 #endif /* _PTH_P_H */ @ 1.11 log @*** empty log message *** @ text @a50 1 #define PTH_SYSCALL_SOFT FALSE @ 1.10 log @*** empty log message *** @ text @a42 3 #if !PTH_FAKE_POLL #include #endif @ 1.9 log @*** empty log message *** @ text @d43 3 @ 1.8 log @*** empty log message *** @ text @d51 1 @ 1.7 log @*** empty log message *** @ text @d2 1 a2 1 ** pth_p.h -- PTH private API definitions @ 1.6 log @*** empty log message *** @ text @d6 2 a7 2 ** This file is part of PTH, a non-preemptive thread scheduling library ** which can be found at http://www.gnu.org/software/pth/. @ 1.5 log @*** empty log message *** @ text @d7 1 a7 1 ** which can be found at http://www.engelschall.com/sw/pth/. @ 1.4 log @*** empty log message *** @ text @a56 6 /* some common stuff */ #define return_errno(return_val,errno_val) \ do { errno = (errno_val); return (return_val); } while (0) #define return_only_errno(errno_val) \ do { errno = (errno_val); return; } while (0) @ 1.3 log @*** empty log message *** @ text @d20 1 a20 1 ** License along with this library; if not, write to the Free @ 1.2 log @*** empty log message *** @ text @d63 1 a63 1 %%MARK%% @ 1.1 log @*** empty log message *** @ text @d63 1 a63 1 %%INSERTION-POINT%% @