Commit Graph

62 Commits

Author SHA1 Message Date
jb
10e0c9e2e7 Allow a thread dump to report the thread's sigmask when in the
PS_SIGWAIT state.
1998-04-17 09:39:37 +00:00
jb
2b906f181a When in PS_SIGWAIT state, still call signal handlers and set errno
to EINTR.
1998-04-17 09:37:41 +00:00
jb
19185ac512 Change the FILE locking to be by FILE, not by the underlying fd as
it was. Add a FILE_WAIT state and queue threads waiting for a FILE
lock. Start using the sys/queue.h macros instead of the way that MIT
pthreads did it.

Add a thread name to the private thread structure and a non-POSIX
function to set this. This helps (me at least) when sending a SIGINFO
to a threaded process to get a /tmp/uthread.dump to see what the
<expletive deleted> threads are doing this time. It is nice to be
able to recognise (yes, I spell that with an 's' too) which threads
are which.
1998-04-11 07:47:22 +00:00
jb
ddcbf85eb2 Enable static initialisation of mutexes and condition variables. 1998-04-04 11:33:01 +00:00
jb
c34d8f0bcb Rename static initializer defines for opaque structures so that the
POSIX specified names can be declared in pthread.h.
1998-04-04 10:58:12 +00:00
jb
fc00c3e358 Move the magic field initialisation to a place when it is more magic. 1998-04-04 07:27:29 +00:00
jb
6a1d5a1659 Add a magic field to the pthread structure to help recognize valid
threads from invalid ones. The pthread structure is opaque to the user
so this change does not cause any incompatibilities.

Hopefully this change will help code that was written for draft 4
fail gracefully if the programmer ignores the compiler warning about
the change in the level of indirection for the argument passed to
pthread_detach(). I got burnt, so I fixed then (expletive deleted)
thing.

These functions comply with the revised standard. That should shut
Terry up!
1998-04-03 09:31:15 +00:00
jb
a6ff3fe2e9 This function compiles with the standard, so say so. 1998-04-03 09:12:19 +00:00
jb
449d1d74af This function compiles with the standard, so say so.
Add a note about not touching errno and warn about previous drafts
of the standard which changed the level of indirection to the thread
argument. POSIX had a bit of trouble deciding what to do. So anyone
coding to both draft 4 and draft 10 (the final draft) will get burnt
by this function. I did. Grrr.
1998-04-03 09:11:15 +00:00
dufault
8ed0defc6e Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and
_KPOSIX_PRIORITY_SCHEDULING options to work.  Changes:

Change all "posix4" to "p1003_1b".  Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;

Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;

Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;

Add options to LINT;

Minor fixes to P1003_1B code during testing.
1998-03-28 11:51:01 +00:00
bde
ad583a7187 Fixed a function arg type in the synopsis. 1998-03-23 13:07:17 +00:00
jb
e8b6792d29 Fix a problem of indirection unblocking signals that would have caused
signals to be unblocked even if they were already blocked when entering
the function.

Pointed out by: bde
1998-03-22 04:13:23 +00:00
jb
aba00ab374 When forking a process, only the running thread gets to live. All
other threads never see the light of day and if they leave things
locked, blame POSIX.
1998-03-09 06:54:50 +00:00
jb
50a31a7bd8 Add lib/libc/include as an directory to search for header files.
Change MACHINE references to MACHINE_ARCH.

Declare the names of the syscalls that need to be renamed to allow
for the functions that libc_r provides replacements for. This list
used to be in lib/libc/sys/Makefile.inc, but has been moved here
to keep that makefile tidy and remove the temptation for people to
add things to the list without adding a libc_r replacement function.
1998-03-09 05:09:43 +00:00
jb
ff740b6b07 Add FreeBSD/Alpha code to initialise a jmpbuf for a created thread.
Change a bunch of __alpha references to __alpha__.
1998-03-09 04:46:26 +00:00
jb
696d96607e Add sched_yield() witch is the draft 10 equivalent of pthread_yield()
from draft 4. Move some of the schedule definitions to sched.h which
is a POSIX header.
1998-03-08 02:37:27 +00:00
julian
b31dde27bf Fixes from Jeremy Allison and Terry Lambert for pthreads:
specifically:
uthread_accept.c: Fix for inherited socket not getting correct entry in
                  pthread flags.
uthread_create.c: Fix to allow pthread_t pointer return to be null if
                  caller doesn't care about return.
uthread_fd.c: Fix for return codes to be placed into correct errno.
uthread_init.c: Changes to make gcc-2.8 thread aware for exception stack
                frames (WARNING: This is #ifdef'ed out by default and is
		different from the Cygnus egcs fix).
uthread_ioctl.c: Fix for blocking/non-blocking ioctl.
uthread_kern.c: Signal handling fixes (only one case left to fix,
                that of an externally sent SIGSEGV and friends -
		a fairly unusual case).
uthread_write.c: Fix for lock of fd - ask for write lock, not read/write.
uthread_writev.c: Fix for lock of fd - ask for write lock, not read/write.

Pthreads now works well enough to run the LDAP and ACAPD(with the gcc 2.8 fix)
sample implementations.
1998-02-13 01:27:34 +00:00
julian
5b999ea00c slight cleanup in handling sockets and file descriptors.
Same fix already applied to other types of fds. This one was apparently missed.
1998-02-05 21:16:52 +00:00
alex
370393763b Changed pthread_detach to conform to POSIX, i.e. the single argument
provided is of type pthread_t instead of pthread_t *.

PR:		4320

Return EINVAL instead of ESRCH if attempting to detach an already
detached thread.
1997-12-25 05:07:20 +00:00
alex
2d792e656e Modify the return values to comply with POSIX. Previously these
functions would return -1 and set errno to indicate the specific error.
POSIX requires that the functions return the error code as the return
value of the function instead.
1997-11-25 01:29:16 +00:00
alex
674aa81547 Added missing source file uthread_sigwait.c.
Submitted by:	Daniel M. Eischen <deischen@iworks.InterWorks.org>
1997-11-24 23:04:29 +00:00
alex
b0aecb1c1e Correct the return value from pthread_cond_timedwait when a timeout
occurs (was EAGAIN, is now ETIMEDOUT).

Submitted by:	Daniel M. Eischen <deischen@iworks.InterWorks.org>
1997-11-23 22:58:26 +00:00
jb
013b17e93c Bring back nanosleep from the cold.
The addition of the nanosleep syscall was correctly added to
libc/sys/Makefile so that it is renamed as _thread_sys_nanosleep().
This syscall is one of those that libc_r has to re-implement because
the only behaviour is to block the process. So libc_r just ignores the
fact that a nanosleep syscall exists and goes its own way - as it has
done all along .... and now it does again. And now a simple program
can sleep again. Phew.
1997-06-04 13:03:12 +00:00
alex
045a1cc0a4 Fixed overallocation of _thread_fd_table.
PR:		3494
Submitted by:	Steve Bauer <sbauer@rock.sdsmt.edu>
1997-05-13 23:54:22 +00:00
peter
b73ae73c5f Add const in the thread version of nanosleep()'s args 1997-05-12 10:02:18 +00:00
peter
4956656241 remove prototype for nanosleep(), it's visible in unistd.h now. 1997-05-12 10:00:46 +00:00
jdp
af706d2990 Bye bye CPLUSPLUSLIB hack! It's not needed any more.
Don't merge this into -2.2 unless you understand the dependencies on
c++rt0, bsd.lib.mk, and gcc -shared.  I.e., let me do it.
1997-05-06 00:49:36 +00:00
jb
eb3d4a0541 Nuke makefiles that duplicate those in libc now that libc is libc_r
aware. This simplifies things for libc_r.
1997-05-03 04:05:57 +00:00
jb
f4c65c7dd6 Use libc makefiles from now on instead of duplicating them in libc_r.
Added Id strings too. It's useful to know who last made a change.
1997-05-03 03:57:21 +00:00
jb
0b77d30d2b Set wakeup time in pthread_cond_wait() to `forever' (-1) to prevent
calling thread from being rescheduled based on an unspecified wakeup
time.

Bug/fix pointed out by Alexandre Fenyo <fenyo@email.enst.fr>.
1997-04-11 22:38:22 +00:00
jb
f0841c21ac Fix the return value. Oops. 1997-04-01 22:52:43 +00:00
jb
23802b4b62 Fix indentations. Sigh. 1997-04-01 22:51:48 +00:00
jb
70db53e4e7 Make error checking less zealous to handle devices like /dev/null
which don't provide a non-blocking interface.

This is a short term "fix" which changes a half-lose to a half-win.
The thread that accesses a device that does not provide a non-blocking
interface will block for its time slice.

A medium term solution would be to use rfork. A long-term solution
would be some sort of kernel thread/SMP implementation.
1997-04-01 22:49:58 +00:00
jb
281aa43a36 Add parentheses to make blocking mode work. 1997-04-01 22:44:18 +00:00
peter
6b08958c64 Revert $FreeBSD$ to $Id$ 1997-02-22 15:12:41 +00:00
julian
c2f7c3e489 Submitted by: John Birrell
uthreads update from the author.
1997-02-05 23:26:09 +00:00
wosch
6d0dbd7455 Sort cross references. 1997-01-20 23:23:22 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
wpaul
8e863e8e74 Unspam this file: replace spaces with tabs so make doesn't barf. (I smell
a cut & paste-o.)

Noticed by: Ron Bolin <rlb@mindspring.com>
1996-12-29 16:32:21 +00:00
alex
70149f12e3 Sync with libc.
Submitted by:	John Birrell <jb@cimlogic.com.au>
1996-12-29 03:04:08 +00:00
alex
2ef828a4e8 Added uthread_attr_destroy.c to SRCS.
Submitted by:	John Birrell <jb@cimlogic.com.au>
1996-12-29 02:51:55 +00:00
hsu
54ae6f7941 Add pthread_mutexattr_init() and pthread_mutexattr_setkind_np(). 1996-11-11 09:09:30 +00:00
hsu
f809f50424 Add uthread_attr_init.c, uthread_attr_setstacksize.c, uthread_mattr_init.c,
uthread_mattr_kind_np.c, uthread_multi_np.c, and uthread_single_np.c.
1996-11-11 09:08:11 +00:00
hsu
fae58f5f62 Moved enum pthread_mutextype to pthread.h.
Add pthread_mutexattr_default definition.
1996-11-11 09:07:05 +00:00
hsu
d1d957f50c Make pthread_getspecific() compliant with the final IEEE pthreads
specification:  return parameter passing changed.
1996-11-11 09:05:29 +00:00
wosch
89dea7c61d add missing comma(s) in .Xr macros 1996-09-23 22:24:39 +00:00
wosch
d3f8d45ce4 fix .Xr macro 1996-09-21 15:08:10 +00:00
nate
c19924b409 Remove now un-necessary FreeBSD specific code since our timespec
structure now has the correct member names.

Pointed out by: Peter Wemm
1996-09-20 06:33:54 +00:00
peter
8f4f719b2a - libc self contained again.
- sync up source files with main libc
1996-08-30 21:26:05 +00:00
adam
d3763f134b pick up the resolver sources from contrib 1996-08-30 20:51:09 +00:00