| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
pthread_md.h. This commit only moves the definition; it does not
change it for any of the platforms. This more easily allows 64-bit
architectures (in particular) to pick a slightly larger stack size.
|
|
|
|
|
|
|
|
|
|
|
|
| |
THR_SETCONTEXT as PANIC(). The THR_SETCONTEXT macro is currently not
used, which means that the definition we had could be wrong, overly
pessimistic or unknowingly right. I don't like the odds...
The new _ia64_break_setcontext() and corresponding kernel fixes make
KSE mostly usable. There's still a case where we don't properly
restore a context and end up with a NaT consumption fault (typically
an indication for not handling NaT collection points correctly),
but at least now mutex_d works...
|
|
|
|
|
| |
Instead use the break instruction with an immediate specially
created for us.
|
|
|
|
|
|
| |
calling process's SIGCHLD handler)
PR: bin/45669
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
state for amd64 was twice as large as necessary. Peter
recently fixed this, so the comment no longer applies.
Also, since the size of struct mcontext changed, adjust
the threads library version of get&set context to match.
FYI, any change layout/size change to any arch's struct
mcontext will likely need some minor changes in libpthread.
|
|
|
|
|
|
|
|
|
|
|
|
| |
always widen the imputed netmask if it is narrower than the specified octets.
fixes a strange behaviour where inet_net_pton would always return 4 (bits)
for multicast addresses no matter how many octets were specified.
negotiated with Paul Vixie, original author of this function.
PR: standards/53151
Submitted by: Max Laier <max@love2party.net>
Optained from: OpenBSD
|
|
|
|
|
|
| |
some limitation.
Reported by: Marc G. Fournier <scrappy@hub.org>
|
|
|
|
| |
SIG_CANTMASK to remove unmaskable signal masks.
|
|
|
|
| |
it will be inherited in pthread_create.
|
|
|
|
|
|
|
|
|
|
|
| |
to avoid potential memory leak, also fix a bug in pthread_create, contention
scope should be inherited when PTHREAD_INHERIT_SCHED is set, and also check
right field for PTHREAD_INHERIT_SCHED, scheduling inherit flag is in sched_inherit.
2. Execute hooks registered by atexit() on thread stack but not on scheduler
stack.
3. Simplify some code in _kse_single_thread by calling xxx_destroy functions.
Reviewed by: deischen
|
|
|
|
|
|
| |
invoke signal handler.
Reviewed by: deischen
|
|
|
|
|
|
|
|
|
| |
should be a value past to pthread_attr_setguardsize, not a rounded up value.
Also fix a stack size matching bug in thr_stack.c, now stack matching code
uses number of pages but not bytes length to match stack size, so for example,
size 512 bytes and size 513 bytes should both match 1 page stack size.
Reviewed by: deischen
|
|
|
|
| |
Reviewed by: deischen
|
|
|
|
|
|
| |
accordingly.
Reviewed by: deischen
|
|
|
|
| |
Reviewed by: deischen
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
connected).
PR: docs/56683
Submitted by: Chris S.J. Peron <maneo@bsdpro.com>
MFC after: 3 days
|
|
|
|
|
| |
Submitted by: Stefan Farfeleder
PR: bin/56653
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a shared library or any other dyanmic allocated data block, once
pthread_once_t is initialized, a mutex is allocated, if we unload the
shared library or free those data block, then there is no way to deallocate
the mutex, result is memory leak.
To fix this problem, we don't use mutex field in pthread_once_t, instead,
we use its state field and an internal mutex and conditional variable in
libkse to do any synchronization, we introduce a third state IN_PROGRESS to
wait if another thread is already in invoking init_routine().
Also while I am here, make pthread_once() conformed to pthread cancellation
point specification.
Reviewed by: deischen
|
|
|
|
| |
Reviewed by: deischen
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
specified directory is not found in the mount list. Before the
MNT_BYFSID changes, unmount(2) used to return ENOENT for a nonexistent
path and EINVAL for a non-mountpoint, but we can no longer distinguish
between these cases. Of the two error codes, EINVAL was more likely
to occur in practice, and it was the only one of the two that was
documented.
Update the manual page to match the current behaviour.
Suggested by: tjr
Reviewed by: tjr
|
|
|
|
| |
pthread_rwlock_timedrwlock.
|
|
|
|
|
| |
jumping to .cerror. This means .cerror has to be present in the
same module with its consumers, or bad things will happen.
|
|
|
|
|
|
|
|
|
| |
no peer address information is desired.
PR: 56044
Submitted by: Felix Opatz <felix@zotteljedi.de> and
Bernd Luevelsmeyer <bdluevel@heitec.net>
MFC after: 1 month
|
| |
|
|
|
|
|
|
|
|
| |
(where it didn't really belong), to the DESCRIPTION section.
English advice: ceri
Requested by: das
MFC after: 4 weeks
|
|
|
|
|
|
| |
pthread_mutex_timedlock().
Reviewed by: deischen
|
| |
|
|
|
|
| |
without this change, my atexit test dumps core.
|
| |
|
|
|
|
|
|
| |
value for getcontext() in a preserved register rather than on the stack.
The second time around, the stack value would likely have changed so we
can't depend on it for the return value.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
otherwise the return from the syscall stub for getcontext will pop off
the return value for the caller to the getcontext stub and it will appear
as though the setcontext() syscall returned instead of the getcontext().
The same bug exists on amd64, a fix is coming there too.
The bug can be demonstrated with this test code fragment:
main()
{
ucontext_t top;
if (getcontext(&top) == 0) {
write(2, "PING!\n", 6);
/* Cause a return value of 1 from getcontext this time */
top.uc_mcontext.mc_eax = 1;
setcontext(&top);
err(1, "setcontext() returned");
}
write(2, "PONG!\n", 6);
_exit(0);
}
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of long types for low-level locks.
Add prototypes for some internal libc functions that are
wrapped by the library as cancellation points.
Add memory barriers to alpha atomic swap functions (submitted
by davidxu).
Requested by: bde
|
|
|
|
| |
Tested on: SMP
|
|
|
|
|
|
| |
only needed symbols from libc_pic is not working on sparc64.
Requested by: jake
|
|
|
|
|
|
|
|
| |
better represent failures of special files accessed over NFS.
Approved by: schweikh (mentor)
Reviewed by: bde (as a description)
MFC after: 6 weeks
|
|
|
|
|
|
| |
used, and refer to <osreldate.h> to get userland date.
Submitted by: ru
|
|
|
|
|
|
|
| |
ENOENT instead.
Reported by: "Kenneth D. Merry" <ken@kdm.org>
Submitted by: Bryan Liesner <bleez@comcast.net>
|
|
|
|
|
|
| |
PR: 50945
Submitted by: Rene de Vries <rene@tunix.nl>
Reminded by: jmallett
|
|
|
|
| |
Reviewed by: davidxu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See e.g. nfsclient/nfs_vnops.c
static int
nfs_read(struct vop_read_args *ap)
{
struct vnode *vp = ap->a_vp;
if (vp->v_type != VREG)
return (EPERM);
return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred));
}
Approved by: schweikh (mentor)
MFC after: 6 weeks
|
|
|
|
| |
integer arithmetic.
|
| |
|
|
|
|
|
|
|
| |
NO_TOOLCHAIN skips Compilers and Binutils
NO_USB skips USB stuff
NO_VINUM skips Vinum stuff
NO_ACPI skips ACPI stuff
|