summaryrefslogtreecommitdiff
path: root/devel/pth/patches/patch-ak
blob: 732253e95c75d2be47d84473d1dcdca3f6ade825 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$NetBSD: patch-ak,v 1.1 2002/11/26 21:42:49 skrll Exp $

--- pth_sched.c.orig	Sun Jan 27 11:03:41 2002
+++ pth_sched.c
@@ -47,16 +47,15 @@ static pth_time_t   pth_loadticknext;
 static pth_time_t   pth_loadtickgap = PTH_TIME(1,0);
 
 /* initialize the scheduler ingredients */
-intern void pth_scheduler_init(void)
+intern int pth_scheduler_init(void)
 {
     /* create the internal signal pipe */
-    if (pipe(pth_sigpipe) == -1) {
-        fprintf(stderr, "**Pth** INIT: Cannot create internal pipe: %s\n",
-                strerror(errno));
-        abort();
-    }
-    pth_fdmode(pth_sigpipe[0], PTH_FDMODE_NONBLOCK);
-    pth_fdmode(pth_sigpipe[1], PTH_FDMODE_NONBLOCK);
+    if (pipe(pth_sigpipe) == -1)
+        return_errno(FALSE, errno);
+    if (pth_fdmode(pth_sigpipe[0], PTH_FDMODE_NONBLOCK) == PTH_FDMODE_ERROR)
+        return_errno(FALSE, errno);
+    if (pth_fdmode(pth_sigpipe[1], PTH_FDMODE_NONBLOCK) == PTH_FDMODE_ERROR)
+        return_errno(FALSE, errno);
 
     /* initialize the essential threads */
     pth_sched   = NULL;
@@ -72,7 +71,8 @@ intern void pth_scheduler_init(void)
     /* initialize load support */
     pth_loadval = 1.0;
     pth_time_set(&pth_loadticknext, PTH_TIME_NOW);
-    return;
+
+    return TRUE;
 }
 
 /* drop all threads (except for the currently active one) */