Commit Graph

723 Commits

Author SHA1 Message Date
jruoho
edddb28a67 Split pthread_attr_getschedparam() and pthread_attr_setschedparam() to a
separate page.
2010-07-07 16:04:19 +00:00
jruoho
cf6053f7b6 Split pthread_attr_getinheritsched() and pthread_attr_setinheritsched() to a
separate page, and actually document these.
2010-07-07 15:30:32 +00:00
jruoho
904af291c8 Move pthread_attr_getguardsize() and pthread_attr_setguardsize() to a
separate page, and actually document these.
2010-07-07 13:04:20 +00:00
jruoho
40267ee9ae Fix some minor errors/typos and clarify. 2010-07-07 12:49:15 +00:00
jruoho
2bf45345db Move the thread stack attribute functions to a separate page. In addition,
document pthread_attr_getstack() and pthread_attr_setstack(). Try to also
document these a little better (in particular, note some items in the long
list of caveats and questions related to application-controlled thread stack).
2010-07-07 11:04:52 +00:00
njoly
0eab175c82 Add missing list end. 2010-07-07 10:22:33 +00:00
wiz
c4ed068736 Sort sections. 2010-07-07 09:54:07 +00:00
jruoho
dbb0e63cfb Split pthread_attr_getdetachstate(3) and pthread_attr_setdetachstate(3) to a
separate page. Once ready, the main page, pthread_attr(3), will contain a
summary of the various thread attribute functions.
2010-07-07 08:57:36 +00:00
jruoho
7f32058c79 Remove pthread_attr_getscope() and pthread_attr_setscope(). 2010-07-07 08:41:11 +00:00
jruoho
69ff1aa9c5 Move pthread_attr_{g,s}etscope() to a separate page and try to document
these better. Should fix PR lib/41831 from Wolfgang Stukenbrock.

XXX: Please proofread.
2010-07-07 08:22:53 +00:00
njoly
aab619738e Add missing list end. 2010-07-06 23:15:47 +00:00
jruoho
6a595a491d Same here; fix LIBRARY, add COMPATIBILITY/ERRORS, etc. 2010-07-06 22:24:56 +00:00
jruoho
ae0626ba0d Fix LIBRARY. Add ERRORS and COMPATIBILITY. And some small improvements. 2010-07-06 21:54:12 +00:00
jruoho
935deb263f Document pthread_attr_get_np(). Fixes PR lib/39289 from ahoka@. 2010-07-06 21:36:34 +00:00
dholland
4035b6ee7d Improve wording describing the behavior of the attributes argument, and
add reference to pthread_attr(3), as requested in PR 42871. The text
added is different from but based on a suggestion by Matthew Mondor.
2010-06-07 04:36:34 +00:00
jruoho
ebe1a1a443 Use a list with the mutex type. Note, from the standard, that recursive
mutexes should be avoided when condition variables are used.
2010-05-20 05:19:29 +00:00
jruoho
f395ce5a84 Use similar markup than in pthread_mutex_init(3) etc. with the initializer
macro. Improve wording slightly.
2010-05-20 04:47:38 +00:00
jruoho
128d933f6d .Fa -> .Fn. 2010-05-20 04:41:11 +00:00
jruoho
6e31029d91 Note the initializer macros. 2010-05-20 04:40:23 +00:00
jruoho
9bfaa34d66 Build links for rest of the pthread_attr(3) functions.
Hopefully I got all of them right in the setlist...
2010-05-19 20:04:42 +00:00
jruoho
cd2244d3a2 Xref timespec(3). 2010-05-18 06:31:17 +00:00
jruoho
9127e9f198 .Dv. 2010-05-16 12:36:32 +00:00
jruoho
e55b912b81 Add the Butenhof's book to SEE ALSO. (It was decent enough when I read it
years ago, but if there are better ones, please feel free to add those.)
2010-05-16 12:23:32 +00:00
jruoho
8292b0e60f Enumerate the functions in a table instead of a big SEE ALSO.
Also some stylistic changes.
2010-05-16 12:20:00 +00:00
explorer
fc70b598c4 fix the pthread pt_lid in the fork callback function that runs in the child instead of a function that may be going away. KNFify 2010-03-25 01:15:00 +00:00
explorer
3f82e012db Correctly set pt_lid in the child, after a fork 2010-03-24 07:27:22 +00:00
drochner
1982972a07 catch up with the __RENAME of nanosleep(2) a while ago, otherwise we
get the compatibility function which assumes a different struct timespec
2010-03-23 20:35:44 +00:00
joerg
f70c7c0422 Use .In instead of .Ar Pa 2010-03-22 21:56:05 +00:00
rmind
63a834705c pthread_attr(3): sync with reality i.e. uncomment descriptions about
various functions we support.  Fix license style.
2009-10-05 23:37:01 +00:00
rmind
26ce5a50b4 pthread(3): mention that we use 1:1 threading model; remove descriptions
of no longer used environment variables.
2009-10-05 23:35:42 +00:00
rmind
81bc3e51a5 Add check to avoid multiple inclusions and redefinitions.
KNF while here.
2009-10-05 23:33:48 +00:00
christos
85ddadbfdc Don't just look only at the first element in the deadqueue to find lwp's
to reuse, because if we lose the race with the kernel we are never going
to reuse any elements. Look in the whole list instead.
XXX: should be pulled up to 5.x
2009-10-03 23:49:50 +00:00
enami
cc63c84008 Make nanosleep cancelable again. 2009-08-12 23:51:23 +00:00
rumble
b222d9680b "unblocks the mutex" -> "unlocks the mutex" 2009-07-02 19:43:06 +00:00
joerg
cdb510a7bb Restore use of _lwp_makecontext, the AMD64 bug has been fixed. 2009-07-02 09:59:00 +00:00
joerg
35173b1fce Partially revert 1.110: Use makecontext again until the problems with
_lwp_makecontext are solved.
2009-06-25 13:38:43 +00:00
njoly
49931fb2d8 Restore PTHREAD__ASM_RASOPS for alpha (from _context_u.S), that was
lost in previous cleanup.

ok by ad@.
2009-05-18 13:03:35 +00:00
ad
61cac435e4 - Convert from makecontext() -> _lwp_makecontext().
- Rely on _lwp_makecontext() to set up the thread identity register.
  This is not currently done (a bug), nor does libpthread use the
  threadreg yet. I'm doing this so it the code can be used by the
  person working on TLS to verify that their threadreg code is working.
2009-05-17 14:49:00 +00:00
ad
a61915e94f Remove unused code that's confusing when using cscope/opengrok. 2009-05-16 22:20:40 +00:00
wiz
8b5179c21c Add CAVEATS section:
Due to limitations in the current pthread implementation, makecontext(3)
and sigaltstack(2) should not be used in programs which link against
libpthread (whether threads are used or not).

Wording from drochner@ and ad@

Bump date for man pages.

Add note in libpthread/README so it's not forgotten to update the man
pages when the problem is fixed.
2009-04-16 18:37:29 +00:00
wiz
7d9f3abb75 Avoid duplicate .Pp. 2009-04-11 16:51:39 +00:00
wiz
c32974546d Remove trailing whitespace. 2009-04-11 16:51:28 +00:00
joerg
d3c6cf0458 .\" are comments, not ./" 2009-04-11 15:35:15 +00:00
drochner
f1c955a1b2 Fix the comparision function used by the red-black tree global thread list
implementation:
-don't return a difference, this can overflow
-don't try to substract typed pointers which don't belong to the
 same object, this gives undefined results

This fixes instabilities of programs which use more than a handful
of threads, eg spuriously failing pthread_join().
2009-04-01 10:13:24 +00:00
ad
7de9da978b Revert the _lwp_ctl which is causing problem. I did test this locally,
I guess not well enough.
2009-03-30 21:32:51 +00:00
ad
5c670ea686 - Make the threadreg code use _lwp_setprivate() instead of MD hooks.
XXX This must not be enabled by default because the LWP private mechanism
  is reserved for TLS. It is provided only as a test/demo.

  XXX Since ucontext_t does not contain the thread private variable, for a
  short time after threads are created their thread specific data is unset.
  If a signal arrives during that time we are screwed.

- No longer need pthread__osrev.

- Rearrange _lwp_ctl() calls slightly.
2009-03-29 09:30:05 +00:00
ad
a46df1f1f2 pthread_barrier: Fix numerous stupid bugs. Surprising that nobody
complained yet.
2009-01-29 21:19:35 +00:00
wiz
0aec71a9f5 Fix typo. 2009-01-24 13:00:03 +00:00
rmind
909e7f4259 - Make thread-affinity and processor-set interfaces mutually exlusive.
- pset_assign: when CPU is assigned, migrate out all LWPs from it.
2009-01-20 01:57:35 +00:00
lukem
a06595c27b fix -Wsign-compare issues 2009-01-18 12:14:16 +00:00
christos
6343ca254d fix __sigtimedwait50 2009-01-13 01:50:04 +00:00
christos
461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
wiz
42fdda0454 Bump date for previous. 2008-12-31 14:19:51 +00:00
christos
4a65af23ac mention that these may fail with EPERM. From Anon Ymous 2008-12-31 13:57:54 +00:00
christos
62f7265ebd revert previous. It was meant for the branch 2008-12-29 15:08:03 +00:00
christos
6c20e81ce2 adjust for time_t 64 2008-12-28 21:33:35 +00:00
ad
ebaaa8cf7a Some things to do on major bump. 2008-12-28 11:01:58 +00:00
ad
18e73e1ebe Replace semid_t with intptr_t. No function change. This is a libc/kernel
private interface and so the name change should not affect any third
party code.
2008-11-14 15:49:20 +00:00
uwe
55247fa322 Fix typo in comment. 2008-10-27 00:52:07 +00:00
uwe
47cd7b4502 Pull down revision 1.3.6.1 by skrll@ (adapted to include reg::r_gbr).
struct mcontext != struct reg on sh3.

    Fix PTHREAD_UCONTEXT_TO_REG / PTHREAD_REG_TO_UCONTEXT to deal with this.
2008-10-27 00:47:22 +00:00
mrg
fb8d95d826 check for ${PTHREAD_MACHINE_ARCH} before ${MACHINE_ARCH} or ${MACHINE_CPU} 2008-10-26 00:00:27 +00:00
yamt
639a0868fd remove ; after __weak_alias() 2008-10-25 14:14:11 +00:00
snj
682ea0e2b3 s/explicitely/explicitly/ 2008-10-19 21:27:46 +00:00
rmind
43819fe5ab Do not recommend to mix affinity(3) with pset(3). 2008-10-18 03:37:41 +00:00
ad
6f7d0483cf pthread_attr_getschedparam: allow without preceding setparam on the
attr structure.
2008-10-10 09:13:20 +00:00
ad
8572b64ab0 Clarifications for PTHREAD_DIAGASSERT. 2008-10-08 10:11:11 +00:00
ad
beaa63b638 Disable diagnostic assertions by default and just return error codes like
other systems. Allows poorly written applications to appear working. If you
are developing pthread apps please turn it on manually by setting the
environment variable.
2008-10-08 10:03:28 +00:00
ad
fdc51b51d9 Adjust the compat stuff slightly so that the changes are mostly self
contained (Makefile, pthread_compat.c).
2008-10-08 08:27:07 +00:00
ad
844fcfc979 make PTHREAD__COMPAT=1
Builds a libpthread that can be dropped into a NetBSD 2/3/4 chroot.

This makes threading work in the chroot when using a NetBSD 5 kernel, no
other modifications required.
2008-09-29 08:48:15 +00:00
rmind
0f80b1578d Arguments were swapped for cpuset_set(), cpuset_clr(), cpuset_isset()
functions, but man pages were not updated (hi Christos!).
2008-09-12 13:39:04 +00:00
skrll
0b99767bfe Remove unnecessary include. 2008-08-11 21:45:24 +00:00
matt
2b0c4dcffd Change pthread_mutex_t to use the amount of space as and be congruent to
the version used in the SA version of pthreads.  This preserves binary
compatibility between both versions of the library.
2008-08-02 19:46:30 +00:00
matt
c0038aadef Change some type to eliminate some lint warnings. 2008-08-02 16:02:26 +00:00
pooka
6ebb8696c9 add pthread_cond_has_waiters_np() 2008-07-18 16:17:11 +00:00
gmcgarry
5aa0bc7608 Selector registers are 16-bit and binutils 2.18 insists that only 16-bit
accesses are permitted on them.  Therefore, change movl to movw.  No change to
machine code generated.
2008-07-07 13:01:16 +00:00
ad
b4c1afd422 Shut lint up. 2008-06-28 16:50:43 +00:00
ad
27e50f7c64 Avoid spurious assertion failure. 2008-06-28 10:37:20 +00:00
ad
0e006eeb6f Minor correction to previous. 2008-06-28 10:36:12 +00:00
ad
cbd43ffa55 Now that we have all the scheduling gunk, make these do something useful:
pthread_attr_get_np
pthread_attr_setschedparam
pthread_attr_getschedparam
pthread_attr_setschedpolicy
pthread_attr_getschedpolicy
2008-06-28 10:29:37 +00:00
ad
403a399142 pthread_attr_setstacksize: EINVAL if the requested size is less than
sysconf(_SC_THREAD_STACK_MIN).
2008-06-25 11:07:07 +00:00
ad
39a9e71121 pthread_join: explicitly test for cancellation. 2008-06-25 11:06:34 +00:00
ad
6d153667e5 pthread_kill, pthread_sigmask: return errno, not the return from the system
call. Found by VSTHlite.
2008-06-24 13:45:07 +00:00
ad
10ba267505 Split cond_signal/cond_broadcast into inline and non-inline parts, like
the kernel.
2008-06-23 11:01:19 +00:00
ad
d9a30823e2 Move call to pthread__self() later. 2008-06-23 11:00:53 +00:00
ad
3e1711d6de pthread__threadreg_get: mark it const. 2008-06-23 10:39:38 +00:00
ad
edbc7575cc pthread_curcpu_np: remove hack for pthread_dummy_lwpctl. 2008-06-23 10:38:39 +00:00
ad
49b506e72f PR lib/38948: libpthread, java: thread awakening itself 2008-06-21 11:27:41 +00:00
rmind
e6acd90e07 - Add affinity(3) manual page, which describes thread affinity,
pthread_setaffinity_np(3) and pthread_getaffinity_np(3) functions,
  provides simple code example.
- Add cpuset(3) manual page, which describes API of CPU-sets.

Thanks <wiz> for many improvements!
2008-06-16 14:25:49 +00:00
ad
271002f500 Back out previous because it breaks the build. 2008-06-05 23:38:51 +00:00
ad
b4ad7b01a5 glibc compatibile PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, requested by
rafal@.
2008-06-05 21:40:17 +00:00
uwe
c39ae7f5d7 Recycle unused _REG_EXPEVT slot in mcontext for _REG_GBR.
As the size of mcontext is not changed, we avoid the hassle of
versioning all the calls that use it.

_REG_EXPEVT was never used by any code in the tree.  Reporting EXPEVT
makes sense only for signals and in that case we pass it to userland
in ksi_trap already which is official MI way to get this (MD) information.

Old binaries running on new kernels will now have their GBR set from
new mcontext, but that's ok too, as GBR was not properly supported by
old kernels (not saved in trapframe), so old binaries couldn't have
possibly used it anyway.
2008-06-01 23:07:20 +00:00
wiz
afa117e7f9 Sort sections. Use more markup. 2008-05-26 08:45:55 +00:00
wiz
5904699302 Sort ERRORS. 2008-05-26 08:43:57 +00:00
wiz
6a46b478a7 Remove trailing whitespace. 2008-05-26 08:43:41 +00:00
wiz
e1070e84ea Remove duplicate (pasto?) RETURN VALUES section. 2008-05-26 08:43:08 +00:00
wiz
5ae93b7856 Remove trailing whitespace. 2008-05-26 08:41:42 +00:00
ad
c4612ba227 More blurb about the mutex and limitations. 2008-05-26 02:25:05 +00:00
ad
3ad4fb5234 Note that when calling pthread_cond_broadcast/signal, the same mutex as
passed to wait/timedwait must be held.
2008-05-26 02:16:48 +00:00
ad
bd2852ae8c Add a comment describing some limitiations of this implementation. 2008-05-26 02:06:21 +00:00
ad
9d566f8240 Note that apps with real-time threads shouldn't use spinlocks because of
the danger of deadlock, and note that in general spinlocks suck and mutexes
should be used instead!
2008-05-26 00:31:08 +00:00