tlibthread: make pthreadperthread the default - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit e68f07d46f5f168dc2076286627279540bf1f99e
DIR parent b73633b1b4e9d3dbd680edf900b2b53befbf5a9a
HTML Author: Russ Cox <rsc@swtch.com>
Date: Wed, 30 Dec 2020 00:16:10 -0500
libthread: make pthreadperthread the default
Diffstat:
M man/man3/thread.3 | 34 +++++++++++++------------------
M src/libthread/thread.c | 2 +-
2 files changed, 15 insertions(+), 21 deletions(-)
---
DIR diff --git a/man/man3/thread.3 b/man/man3/thread.3
t@@ -158,27 +158,21 @@ by
The thread library provides a
.I main
function that sets up a proc with a single thread executing
-.I threadmain
-on a stack of size
-.I mainstacksize
-(default eight kilobytes).
-To set
-.IR mainstacksize ,
-declare a global variable
-initialized to the desired value
-.RI ( e.g. ,
-.B int
-.B mainstacksize
-.B =
-.BR 1024 ).
-When using the
+.IR threadmain .
+.PP
+Every thread is backed by an operating system-provided
.I pthread
-library,
-.B mainstacksize
-is ignored, as is the stack size argument to
-.BR proccreate :
-the first thread in each proc
-runs on the native system stack.
+and runs on its system-provided stack;
+.I mainstacksize
+and the the stack size arguments to
+.I proccreate
+and
+.I threadcreate
+are ignored.
+Although each thread is backed by a separate
+.IR pthread ,
+the threads in a proc are still scheduled non-preemptively
+as on Plan 9 and as described below.
.PP
.I Threadcreate
creates a new thread in the calling proc, returning a unique integer
DIR diff --git a/src/libthread/thread.c b/src/libthread/thread.c
t@@ -7,7 +7,7 @@ static uint threadnsysproc;
static Lock threadnproclock;
static Ref threadidref;
static Proc *threadmainproc;
-static int pthreadperthread;
+static int pthreadperthread = 1;
static void addproc(Proc*);
static void delproc(Proc*);