head 1.20; access; symbols PTH_2_0_7:1.19 PTH_2_0_6:1.18 PTH_2_0_5:1.18 PTH_2_0_4:1.18 PTH_2_0_3:1.17 PTH_2_0_2:1.17 PTH_2_0_1:1.17 PTH_2_0_0:1.16 PTH_2_0b2:1.15 PTH_2_0b1:1.15 PTH_2_0b0:1.15 PTH_1_4:1.14.0.2 PTH_1_4_1:1.14 PTH_1_4_0:1.13 PTH_1_3_7:1.12 PTH_1_4a3:1.12 PTH_1_3_6:1.12 PTH_1_4a2:1.12 PTH_1_3_5:1.12 PTH_1_4a1:1.12 PTH_1_3_4:1.12 PTH_1_3:1.12.0.2 PTH_1_3_3:1.12 PTH_1_3_2:1.12 PTH_1_3_1:1.11 PTH_1_3_0:1.11 PTH_1_3b3:1.10 PTH_1_2_3:1.7.2.1 PTH_1_3b2:1.10 PTH_1_3b1:1.10 PTH_1_3a5:1.10 PTH_1_3a4:1.10 PTH_1_3a3:1.10 PTH_1_2_2:1.7.2.1 PTH_1_3a2:1.10 PTH_1_2_1:1.7.2.1 PTH_1_3a1:1.8 PTH_1_2:1.7.0.2 PTH_1_2_0:1.7 PTH_1_2b8:1.6 PTH_1_2b7:1.6 PTH_1_1_6:1.5 PTH_1_2b6:1.6 PTH_1_2b5:1.6 PTH_1_2b4:1.6 PTH_1_2b3:1.6 PTH_1_2b2:1.5 PTH_1_2b1:1.5 PTH_1_1_5:1.5 PTH_1_0_6:1.2.2.1 PTH_1_0_5:1.2.2.1 PTH_1_0:1.2.0.2 PTH_1_1:1.5.0.2 PTH_1_1_4:1.5 PTH_1_1_3:1.5 PTH_1_1_2:1.5 PTH_1_1_1:1.5 PTH_1_1_0:1.5 PTH_1_1b7:1.5 PTH_1_1b6:1.5 PTH_1_1b5:1.5 PTH_1_1b4:1.5 PTH_1_1b3:1.4 PTH_1_1b2:1.4 PTH_1_1b1:1.4 PTH_1_0_4:1.2 PTH_1_0_3:1.2 PTH_1_0_2:1.2 PTH_1_0_1:1.2 PTH_1_0_0:1.1 PTH_1_0b8:1.1 PTH_1_0b7:1.1 PTH_1_0b6:1.1 PTH_1_0b5:1.1; locks; strict; comment @ * @; 1.20 date 2007.01.01.18.23.53; author rse; state Exp; branches; next 1.19; commitid 9DhdiirNzQPBIP0s; 1.19 date 2006.06.08.17.54.54; author rse; state Exp; branches; next 1.18; commitid x8N3mLVdQgkbdeAr; 1.18 date 2004.12.31.19.34.45; author rse; state Exp; branches; next 1.17; 1.17 date 2004.07.13.10.50.49; author rse; state Exp; branches; next 1.16; 1.16 date 2003.01.01.15.49.12; author rse; state Exp; branches; next 1.15; 1.15 date 2002.11.03.09.24.42; author rse; state Exp; branches; next 1.14; 1.14 date 2002.01.27.11.03.41; author rse; state Exp; branches; next 1.13; 1.13 date 2001.03.24.14.51.05; author rse; state Exp; branches; next 1.12; 1.12 date 2000.02.24.12.35.01; author rse; state Exp; branches; next 1.11; 1.11 date 2000.02.19.16.08.11; author rse; state Exp; branches; next 1.10; 1.10 date 99.12.30.21.59.02; author rse; state Exp; branches; next 1.9; 1.9 date 99.11.09.08.11.33; author rse; state Exp; branches; next 1.8; 1.8 date 99.11.01.10.27.21; author rse; state Exp; branches; next 1.7; 1.7 date 99.10.31.11.46.14; author rse; state Exp; branches 1.7.2.1; next 1.6; 1.6 date 99.09.17.08.01.56; author rse; state Exp; branches; next 1.5; 1.5 date 99.08.13.13.39.32; author rse; state Exp; branches; next 1.4; 1.4 date 99.08.07.14.57.25; author rse; state Exp; branches; next 1.3; 1.3 date 99.08.03.12.24.03; author rse; state Exp; branches; next 1.2; 1.2 date 99.07.22.15.04.56; author rse; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 99.07.11.15.19.11; author rse; state Exp; branches; next ; 1.7.2.1 date 99.11.01.10.25.03; author rse; state Exp; branches; next ; 1.2.2.1 date 99.08.31.08.30.29; author rse; state Exp; branches; next ; desc @@ 1.20 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 . ** ** test_select.c: Pth test program (select) */ /* ``Most computer problems are located between the keyboard and the chair.'' */ #include #include #include #include #include #include #include #include #include "pth.h" /* a useless ticker thread */ static void *ticker(void *_arg) { time_t now; fprintf(stderr, "ticker: start\n"); for (;;) { pth_sleep(5); now = time(NULL); fprintf(stderr, "ticker was woken up on %s", ctime(&now)); } /* NOTREACHED */ return NULL; } int main(int argc, char *argv[]) { pth_event_t evt; pth_t t_ticker; pth_attr_t t_attr; fd_set rfds; char c; int n; pth_init(); fprintf(stderr, "This is TEST_SELECT, a Pth test using select.\n"); fprintf(stderr, "\n"); fprintf(stderr, "Enter data. Hit CTRL-C to stop this test.\n"); fprintf(stderr, "\n"); t_attr = pth_attr_new(); pth_attr_set(t_attr, PTH_ATTR_NAME, "ticker"); t_ticker = pth_spawn(t_attr, ticker, NULL); pth_attr_destroy(t_attr); pth_yield(NULL); evt = NULL; for (;;) { if (evt == NULL) evt = pth_event(PTH_EVENT_TIME, pth_timeout(10,0)); else evt = pth_event(PTH_EVENT_TIME|PTH_MODE_REUSE, evt, pth_timeout(10,0)); FD_ZERO(&rfds); FD_SET(STDIN_FILENO, &rfds); n = pth_select_ev(STDIN_FILENO+1, &rfds, NULL, NULL, NULL, evt); if (n == -1 && errno == EINTR) { fprintf(stderr, "main: timeout - repeating\n"); continue; } if (!FD_ISSET(STDIN_FILENO, &rfds)) { fprintf(stderr, "main: Hmmmm... strange situation: bit not set\n"); exit(1); } fprintf(stderr, "main: select returned %d\n", n); while (pth_read(STDIN_FILENO, &c, 1) > 0) fprintf(stderr, "main: read stdin '%c'\n", c); } pth_cancel(t_ticker); pth_join(t_ticker, NULL); pth_event_free(evt, PTH_FREE_THIS); pth_kill(); return 0; } @ 1.19 log @Adjusted all copyright messages for new year 2006 @ text @d3 1 a3 1 ** Copyright (c) 1999-2006 Ralf S. Engelschall @ 1.18 log @Adjusted all copyright messages for new year 2005. @ text @d3 1 a3 1 ** Copyright (c) 1999-2005 Ralf S. Engelschall @ 1.17 log @Adjusted all copyright messages for new year 2004. @ text @d3 1 a3 1 ** Copyright (c) 1999-2004 Ralf S. Engelschall @ 1.16 log @Adjusted all copyright messages for new year 2003. @ text @d3 1 a3 1 ** Copyright (c) 1999-2003 Ralf S. Engelschall @ 1.15 log @add a bunch of cookies @ text @d3 1 a3 1 ** Copyright (c) 1999-2002 Ralf S. Engelschall @ 1.14 log @bump copyright year @ text @d25 2 a26 1 @ 1.13 log @*** empty log message *** @ text @d3 1 a3 1 ** Copyright (c) 1999-2001 Ralf S. Engelschall @ 1.12 log @*** empty log message *** @ text @d3 1 a3 1 ** Copyright (c) 1999-2000 Ralf S. Engelschall @ 1.11 log @*** empty log message *** @ text @d95 2 @ 1.10 log @*** empty log message *** @ text @d47 1 a47 1 /* NOT REACHED */ @ 1.9 log @*** empty log message *** @ text @d3 1 a3 1 ** Copyright (c) 1999 Ralf S. Engelschall @ 1.8 log @*** empty log message *** @ text @d51 1 a51 1 int main(int argc, char *argv[]) d72 1 a72 1 @ 1.7 log @*** empty log message *** @ text @d2 1 a2 2 ** test_select.c -- Pth test program (select) ** d22 2 @ 1.7.2.1 log @*** empty log message *** @ text @d2 2 a3 1 ** GNU Pth - The GNU Portable Threads a22 2 ** ** test_select.c: Pth test program (select) @ 1.6 log @*** empty log message *** @ text @d12 1 a12 1 ** version 2 of the License, or (at your option) any later version. @ 1.5 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.4 log @*** empty log message *** @ text @d85 4 @ 1.3 log @*** empty log message *** @ text @d56 1 d86 2 a87 2 while (pth_read(STDIN_FILENO, &n, 1) > 0) fprintf(stderr, "main: read stdin '%c'\n", n); @ 1.2 log @*** empty log message *** @ text @a71 1 pth_nonblocking(STDIN_FILENO); d85 1 a85 1 while ((n = fgetc(stdin)) != EOF) @ 1.2.2.1 log @*** empty log message *** @ text @a55 1 char c; d86 2 a87 2 while (pth_read(STDIN_FILENO, &c, 1) > 0) fprintf(stderr, "main: read stdin '%c'\n", c); @ 1.1 log @*** empty log message *** @ text @d2 1 a2 1 ** test_mp.c -- Pth test program (message port handling) @