| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Reviewed by: deischen, julian
Approved by: -arch
|
| |
|
|
|
|
|
|
|
|
| |
The new libpthread will provide POSIX threading support using KSE.
These files were previously repo-copied from src/lib/libc_r.
Reviewed by: deischen
Approved by: -arch
|
|
|
|
|
|
|
|
|
|
|
| |
at file flags and replace it with functions that will avoid null
pointer checks.
MFC to be done by archie ;-)
PR: 42100
Reviewed by: archie, robert
MFC after: 3 days
|
|
|
|
|
|
|
|
|
|
| |
file descriptor bit if poll() returns POLLERR, POLLHUP, or POLLNVAL.
Othewise, it's possible for select() to return successfully but
with no bits set.
Reviewed by: deischen
MFC after: 3 days
PR: bin/42175
|
|
|
|
|
|
|
|
| |
on behalf of a thread, we should check the POLLERR, POLLHUP, and
POLLNVAL flags as well to wake up the thread in these cases.
Suggested by: deischen
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
| |
initially suspended. This was preventing such threads from getting
resumed.
Reported by: Bill Huey <billh@gnuppy.monkey.org>
|
|
|
|
| |
Pointed out by: julian
|
|
|
|
|
|
| |
the process as well as pending on the current thread.
Reported by: Andrew MacIntyre <andymac@bullseye.apana.org.au>
|
|
|
|
| |
Prompted by: wollman
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and pthread_resume_all_np(). These suspend and resume all threads except
the current thread, respectively. The existing functions pthread_single_np()
and pthread_multi_np(), which formerly had no effect, now exhibit the same
behaviour and pthread_suspend_all_np() and pthread_resume_all_np(). These
functions have been added mostly for the native java port.
Don't allow the uthread kernel pipe to use the same descriptors as
stdio. Mostily submitted by Oswald Buddenhagen <ossi@kde.org>.
Correct some minor style nits.
|
|
|
|
|
|
|
|
| |
pthread_page_size.
Fix a bunch line wrapping.
Pointed out by: deischen
|
|
|
|
|
|
|
| |
allow running on other arches when the instructions are supported but
the page size granularity is not.
Glanced at by: peter
|
|
|
|
|
|
|
| |
startup code rather than a static C++ object since c++ seems to be broken.
This doesn't seem to work for staticically linked program just yet, I'll
give that some more work when I get a chance.
|
|
|
|
|
|
|
|
| |
poll(2), readv(2), select(2), wait4(2), writev(2).
PR: bin/37658
Reviewed by: deischen
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
thread is already exiting.
PR: bin/37614
Reviewed by: deischen
MFC after: 1 week
|
|
|
|
|
| |
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
|
|
|
|
|
|
| |
Use __weak_reference in place of the #pragma.
Submitted by: eischen
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Change case of POLLNVAL as an error.
Remove POLLHUP and POLLERR from one case, their place is most likely
amongst read events.
PR: 33723
Submitted by: Alexander Litvin <archer@whichever.org>
Reviewed by: deischen [Provided a small change to the PR patch as well]
MFC after: 4 weeks
|
|
|
|
|
|
| |
Also, make an internal _getprogname() that is used only inside
libc. For libc, getprogname(3) is a weak symbol in case a
function of the same name is defined in userland.
|
|
|
|
|
| |
when old keys are referenced (after pthread_key_delete()) via
pthread_getspecific().
|
|
|
|
|
|
| |
these should return EBUSY when the calling thread would block.
MFC after: 2 weeks
|
|
|
|
| |
canceled or the joinee is detached.
|
| |
|
|
|
|
|
|
|
|
|
| |
due to.
PR: misc/30699
Reviewed by: jasone, ru
Approved by: jasone, ru
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of an alternate signal stack for handling signals. Let the kernel
send signals on the stack of the current thread and teach the threads
signal handler how to deliver signals to the current thread if it
needs to. Also, always store a threads context as a jmp_buf. Eventually
this will change to be a ucontext_t or mcontext_t.
Other small nits. Use struct pthread * instead of pthread_t in internal
library routines. The threads code wants struct pthread *, and pthread_t
doesn't necessarily have to be the same.
Reviewed by: jasone
|
|
|
|
|
|
|
|
|
| |
return address when modifying a jmp_buf to create a new thread context.
Also set t12 with the return address.
This should fix libc_r on alpha.
With much detective work by: Bernd Walter <ticso@cicely.de>
|
|
|
|
|
|
| |
archs. This should fix libc_r on alpha.
Submitted by: Bernd Walter <ticso@cicely9.cicely.de>
|
|
|
|
|
|
|
|
| |
the target thread of the join operation. This allows the cancelled
thread to detach the target thread in its cancellation handler.
This bug was found by Butenhof's cancel_subcontract test.
Reviewed by: jasone
|
|
|
|
| |
when cancelling a thread.
|
|
|
|
|
|
|
| |
the joining thread is in a signal handler.
Reported by: Loren James Rittle <rittle@labs.mot.com>
MFC after: 1 week
|
|
|
|
|
|
|
| |
kernel #defines to figure out where the stack is located. This stops
libc_r from exploding when the kernel is compiled with a different
KVM size. IMHO this is all kinda bogus, it would be better to just
check %esp and work from that.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- uthread_signal.c; libc_r does not wrap signal() since 1998/04/29.
- uthread_attr_setprio.c; it was never connected to the build, and
pthread_attr_setprio() does not exist in POSIX.
- uthread_sigblock.c and uthread_sigsetmask.c; these were no-ops
bloating libc_r's space.
pthread_private.h:
- Removed prototypes of non-syscalls: send().
- Removed prototypes of unused syscalls: sigpending(), sigsuspend(),
and select().
- Fixed prototype of fork().
- MFS: Fixed prototypes of <sys/socket.h> syscalls.
Reviewed by: deischen
Approved by: deischen, jasone
|
| |
|
|
|
|
|
|
|
| |
from occurring when converting from a timeval/timespec to a timeout in
milliseconds.
Submitted by: dwmalone
|
|
|
|
|
|
| |
instead of char *.
MFC after: 2 weeks
|
|
|
|
|
|
| |
could cause deadlock after interruption due to a signal.
Reviewed by: deischen
|
|
|
|
|
|
|
| |
Do not detach canceled threads.
Reported by: Arno Klaassen <arno@heho.snv.jussieu.fr>
Collaboration with: deischen
|
| |
|
|
|
|
|
|
|
|
| |
be malloc()ed, but they are now allocated using mmap(), just as the
default-size stacks are. A separate cache of stacks is kept for
non-default-size stacks.
Collaboration with: deischen
|
|
|
|
|
|
| |
a signal handler from the scheduler.
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
| |
atomically:
1) Search _thread_list for the thread to join.
2) Search _dead_list for the thread to join.
3) Set the running thread as the joiner.
While we're at it, fix a race in the case where multiple threads try to
join on the same thread. POSIX says that the behavior of multiple joiners
is undefined, but the fix is cheap as a result of the other fix.
|
| |
|
| |
|
| |
|
| |
|