aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/channel.c
AgeCommit message (Collapse)AuthorFilesLines
2020-05-17libthread: add pthreadperthread mode and use under ASANRuss Cox1-1/+1
ASAN can't deal with the coroutine stacks. In theory we can call into ASAN runtime to let it know about them, but ASAN still has problems with fork or exit happening from a non-system stack. Bypass all possible problems by just having a full OS thread for each libthread thread. The threads are still cooperatively scheduled within a proc (in thos mode, a group of OS threads). Setting the environment variable LIBTHREAD=pthreadperthread will enable the pthreadperthread mode, as will building with CC9FLAGS='-fsanitize=address' in $PLAN9/config. This solution is much more general than ASAN - for example if you are trying to find all the thread stacks in a reproducible crash you can use pthreadperthread mode with any debugger that knows only about OS threads.
2020-01-13libthread: fix nbrecvul, recvul to match man page, Plan 9Russ Cox1-2/+2
They return 0 on failure, not -1. Bug introduced in my original libthread-for-Unix code. Fixes #230.
2020-01-10Trivial changes: whitespace and modes.Dan Cross1-3/+2
Remote whitespace at the ends of lines. Remove blank lines from the ends of files. Change modes on source files so that they are not executable. Signed-off-by: Dan Cross <cross@gajendra.net>
2008-05-06libthread: fix no-receive nbrecv etc. bug (David Jeannot)Russ Cox1-8/+12
2008-05-05libthread: input sanity checksRuss Cox1-2/+3
2007-08-22libthread: simplify alt tracking, possibly fixing bugRuss Cox1-7/+8
2005-01-13Many small edits.rsc1-0/+1
2004-12-28more freebsd workrsc1-3/+0
2004-12-27confine pthreads to pthread.crsc1-0/+2
2004-12-25more new libthreadrsc1-0/+412
2004-12-25New thread libraryrsc1-500/+0
2004-11-08more thread workrsc1-13/+5
2004-09-17Continue switching library over to pthreads when possible.rsc1-3/+3
Tprimes works on Linux 2.6. You can only have 128 procs though.
2004-09-17Rewrite to remove dependence on rendezvous and its bizarrersc1-25/+18
data structures. Makes it easier to use pthreads too. Still need to add code for non-pthreads systems. Just a checkpoint to switch work to another machine.
2004-04-21odds and endsrsc1-1/+1
2004-04-21Tweaks to make libthread tell Valgrind about its stack limits,rsc1-1/+1
so that Valgrind can detect stack overflow for me.
2004-03-05Small bug fixes.rsc1-2/+2
2004-03-05Various little fixes.rsc1-1/+0
2004-03-05Debugging libthread for acme.rsc1-10/+39
2004-02-29Fighting the good fight.rsc1-8/+10
Move libfmt, libutf into subdirectories of lib9. Add poll-based socket i/o to libthread, so that we can avoid using multiple procs when possible, thus removing dependence on crappy pthreads implementations. Convert samterm, acme to the single-proc libthread. Bring libcomplete, acme up-to-date w.r.t. Plan 9 distribution.
2003-11-24Changes for Mac OS X. Most important is stack sizes in samterm,rsc1-1/+1
which were completely bogus. (Libthread used to ignore them but not anymore. Maybe we really should ignore them, but that breaks Venti, which needs *really* big stacks.)
2003-09-30Initial revisionrsc1-0/+485