summaryrefslogtreecommitdiff
path: root/devel/pth/patches/patch-ak
diff options
context:
space:
mode:
Diffstat (limited to 'devel/pth/patches/patch-ak')
-rw-r--r--devel/pth/patches/patch-ak38
1 files changed, 38 insertions, 0 deletions
diff --git a/devel/pth/patches/patch-ak b/devel/pth/patches/patch-ak
new file mode 100644
index 00000000000..732253e95c7
--- /dev/null
+++ b/devel/pth/patches/patch-ak
@@ -0,0 +1,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) */