Age | Commit message (Collapse) | Author | Files | Lines |
|
This fixes the 'run stats from rc; exit rc; stats dies' problem.
It's unclear whether this is the right fix or whether rc should
be starting all its interactive commands in their own process
groups. But at least it does fix stats dying.
|
|
Having two locks in the proc was causing deadlocks.
|
|
Now that everything uses pthreads and pthreadperthread,
can delete various conditionals, all the custom context code,
and so on. Also update documents.
Fixes #355.
|
|
|
|
|
|
Programs that want to background themselves now need
to define threadmaybackground returning 1.
This avoids a confusing (to people and debuggers)
extra parent process for all the threaded programs
that will never want to background themselves.
|
|
I added a direct call from thread.c to pthread.c's _threadpthreadstart
in May, and no one has complained about NetBSD being broken.
So probably no one is using this on NetBSD at all.
Make pthread the only option.
|
|
This was causing sporadic but frequent crashes at startup
in 9pserve on the new M1 Macs, correctly diagnosing a
use-after-free.
|
|
|
|
|
|
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.
|
|
Fixes #363
Change-Id: Ic8ad5ccce3935fdf00732d78d3024b535db90447
|
|
|
|
|
|
|
|
OpenBSD is using pthreads now, so no need for tas.
|
|
Also reduce duplication: makecontext is per-arch not per-os-arch.
May fix #353.
|
|
It may be that pthreads on NetBSD is now good enough,
but the build as written (introduced in 23a2368 at my suggestion)
is certainly broken, since both NetBSD.c and pthread.c define
the same functions.
If NetBSD does support pthreads now, then a few things
should happen together:
- libthread/sysofiles.sh should drop its top NetBSD case entirely
- libthread/NetBSD.c should be deleted
- libthread/NetBSD-*-asm.s should be deleted
- include/u.h's NetBSD case should define PLAN9PORT_USING_PTHREADS
and #include <pthread.h>
For now, restore to less clearly broken build.
|
|
Linux 2.4 is dead.
(The libthread code hasn't worked for Linux 2.4 for a long time.)
|
|
Linux.c was for Linux 2.4 and is no longer used directly,
only indirectly because NetBSD.c was a 1-line file #including Linux.c.
So mv Linux.c NetBSD.c.
Also rm Linux-*-asm.s which was for Linux 2.4 as well.
|
|
More dead code.
|
|
Darwin 11.0.0 was Mac OS X 10.7.0 aka Lion.
The previous version was Snow Leopard, which
has been unsupported by Apple since February 2014.
|
|
Pretty sure FreeBSD 4 is gone now. :-)
|
|
This should have been deleted in 20f5692b (2012-07-14),
which removed the mkfile and sysofiles.sh references to it.
|
|
They were just a duplicate of my(get|set)mcontext from the other
assembly file, and unused from threadimpl.h.
Change-Id: Id8003e5177ed9d37a7f0210037acbe55bbf7f708
|
|
Signed-off-by: Dan Cross <cross@gajendra.net>
|
|
Should fix faults on OpenBSD.
Fixes #218.
Fixes #226.
|
|
Fixes #332.
|
|
They return 0 on failure, not -1.
Bug introduced in my original libthread-for-Unix code.
Fixes #230.
|
|
For pthread systems that are fussy about which stack is used,
this makes sure that threadmain runs on a system stack.
If you only use proccreate (never threadcreate), all threads run
on system stacks.
|
|
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>
|
|
R=rsc
http://codereview.appspot.com/6742064
|
|
R=rsc
http://codereview.appspot.com/6744053
|
|
R=rsc
http://codereview.appspot.com/6401049
|
|
|
|
|
|
|
|
R=rsc
http://codereview.appspot.com/4838047
|
|
Get p9p to build cleanly for ARM - based on suggestions from rsc and eekee, plus a final tweak from me. Tested (a bit) on sheevaplug (ubuntu jaunty), Nokia N800 (maemo 4) and Nokia N900 (maemo 5).
R=rsc
CC=plan9port.codebot
http://codereview.appspot.com/4524056
|
|
|
|
http://codereview.appspot.com/116073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|