Commit Graph

336 Commits

Author SHA1 Message Date
pkelsey
8a477638bd Provide an unambiguous description of the potential hazard in calling
pthread_setspecific(3) from a key destructor.

Reviewed by: jhb
Approved by: jmallett (mentor)
MFC after: 3 days
2015-05-28 16:18:41 +00:00
pkelsey
ffa8ae0e9f Added description of POSIX-specified behavior when invoked on a key from within that key's destructor.
Reviewed by: jhb, -doc
Approved by: jmallett (mentor)
MFC after: 3 days
Sponsored by: Norse Corp, Inc.
2015-05-19 02:24:55 +00:00
brooks
2906a9e028 Bump doc date missed in r281605.
MFC after:	1 day
2015-04-20 16:23:59 +00:00
kib
9a774084c8 Make wait6(2), waitid(3) and ppoll(2) cancellation points. The
waitid() function is required to be cancellable by the standard.  The
wait6() and ppoll() follow the other syscalls in their groups.

Reviewed by:	jhb, jilles (previous versions)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2015-04-18 21:35:41 +00:00
brooks
0786305598 Fix a minor function definition inconsistancy.
MFC after:	3 days
2015-04-16 15:35:17 +00:00
kib
e465ad4586 Formatting changes to the pthread_testcancel(3).
Use list for the cancellation points enumeration.  Move notes about
functions into the list inline.

The discussion of the idiomatic use of cancellation facilities does
not belong to RETURN VALUES section, move it to NOTES.

Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2015-03-29 19:37:41 +00:00
kib
6531ee3ae5 Make kevent(2) a cancellation point.
Note that to cancel blocked kevent(2) call, changelist must be empty,
since we cannot cancel a call which already made changes to the
process state.  And in reverse, call which only makes changes to the
kqueue state, without waiting for an event, is not cancellable.  This
makes a natural usage model to migrate kqueue loop to support
cancellation, where existing single kevent(2) call must be split into
two: first uncancellable update of kqueue, then cancellable wait for
events.

Note that this is ABI-incompatible change, but it is believed that
there is no cancel-safe code that relies on kevent(2) not being a
cancellation point.  Option to preserve the ABI would be to keep
kevent(2) as is, but add new call with flags to specify cancellation
behaviour, which only value seems to add complications.

Suggested and reviewed by:	jilles
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2015-03-29 19:14:41 +00:00
kib
f3fd716384 Provide individual prototype and generate macros for the red-black tree.
This helps to reduce code size in statically linked applications.

Submitted by:	Sebastian Huber <sebastian.huber@embedded-brains.de>
MFC after:	2 weeks
2015-01-24 12:43:36 +00:00
kargl
962e063cdb Fix a typographical error.
Confirmed by:	n1256.pdf
Obtained from:	Dragonfly BSD
2015-01-06 23:04:41 +00:00
bapt
132a39653e sort SEE ALSO 2014-12-26 22:41:10 +00:00
bapt
07a696a80c Escape Ed to prevent mandoc to avoid confusion with the mdoc's Ed macros 2014-12-26 21:11:33 +00:00
jhb
5081f978b2 Correct a typo: this is the manpage for pthread_cleanup_pop, not push.
Submitted by:	ian
2014-10-27 15:45:37 +00:00
jhb
a3ed3e1c79 Clarify that pthread_cleanup_push()/pop() are implemented as macros that
create a new code block and thus must be balanced at the same lexical
scope.  (This is also a requirement in POSIX.)

PR:		194280
Submitted by:	dr2867.business@pacbell.net
MFC after:	1 week
2014-10-25 19:31:34 +00:00
gavin
034eb30570 Clarify descriptions of pthread_cond_wait() and pthread_cond_timedwait()
Requested by:	Malcolm Douglas via freebsd-doc
Reviewed by:	jhb
MFC after:	1 week
2014-08-12 12:44:52 +00:00
joel
beb1a3ec65 Silence mandoc lint. 2014-07-29 19:41:00 +00:00
bapt
7163c79198 use .Mt to mark up email addresses consistently (part6)
PR:		191174
Submitted by:	Franco Fichtner <franco at lastsummer.de>
2014-06-23 08:27:27 +00:00
kevlo
c31550101a Add MLINKS for macros decribed in queue.3 manpage. 2014-06-17 02:10:40 +00:00
imp
2118f42afd Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
jmg
0978bc3225 Xref pthread_cancel...
bump Dd, _exit was still dated 1996!  yes, it has been modified a few
times since then...

MFC after:	1 week
2014-03-16 01:17:09 +00:00
eadler
118094e60b multiple: Remove 3rd clause from BSD license where approved by the
regents and renumber.

This patch skips files in contrib/ and crypto/

Acked by:	imp
Discussed with:	emaste
2014-03-14 03:07:51 +00:00
jhb
38b34d1e81 - Update a few places to account for va_copy().
- Create a separate 'return values' section and move some statements about
  return values to that section.
- Note that each invocation of va_start() and va_copy() must be paired with
  va_end() in the same function.

MFC after:	1 week
2014-02-05 17:41:00 +00:00
bms
81d177d59f RB_FOREACH_[REVERSE_]FROM() do not require the head pointer. Reword. 2013-11-10 19:49:18 +00:00
bms
c1c266094e Document the RB_FOREACH_FROM() and RB_FOREACH_REVERSE_FROM() macros.
These are largely syntactic sugar. However, they improve code
readability where an RB_FOREACH() or RB_FOREACH_REVERSE()
traversal has been interrupted and must be resumed. Performance
is improved by avoiding unnecessary traversal from the head node.
2013-11-10 19:41:04 +00:00
glebius
b1f334bafb Document RB_FOREACH_SAFE() and RB_FOREACH_REVERSE_SAFE().
Submitted by:	Mikhail <mp lenta.ru>
2013-11-04 16:56:35 +00:00
lstewart
aa062bf658 Add new FOREACH_FROM variants of the queue(3) FOREACH macros which can
optionally start the traversal from a previously found element by passing the
element in as "var". Passing a NULL "var" retains the same semantics as the
regular FOREACH macros.

Kudos to phk for suggesting the "FROM" suffix instead of my original proposal.

Reviewed by:	jhb (previous version), rpaulo
MFC after:	1 week
2013-06-18 02:57:56 +00:00
jilles
3e711d2906 pthread_testcancel(3): Update list of cancellation points.
This should be a fairly complete list of cancellation points in libc, libthr
and librt, including standard as well as non-standard functions.
2013-06-11 21:40:20 +00:00
joel
a6e9df7131 mdoc: convert .Fd to .In, which is much nicer. 2013-06-04 07:37:06 +00:00
eadler
cdb158999f Start sentences on new lines. 2013-05-09 02:04:28 +00:00
joel
3cd1c80381 Remove cross-references to nonexistent CPU_SET(3) manpage.
Also fix cpu_getaffinity(2) document title.

PR:		176317
Submitted by:	brucec
2013-04-21 06:46:41 +00:00
hiren
096e091386 Fixing a typo.
Submitted by:	Benedikt Steinbusch (benedikt.steinbusch@googlemail.com)
Approved by:	sbruno (mentor)
2013-04-15 03:02:55 +00:00
joel
d5b5017793 Remove contractions. 2013-04-11 18:46:41 +00:00
jilles
124486c6e9 siginfo(3): Document TRAP_DTRACE signal code.
MFC after:	1 week
2012-09-14 22:12:04 +00:00
jilles
4205a40cc9 siginfo(3): Document SI_LWP signal code.
Describe SI_LWP as being generated by pthread_kill() because thr_kill() is
a private undocumented function.

MFC after:	1 week
2012-09-14 22:10:01 +00:00
jilles
f6a078256d siginfo(3): Document SI_USER and SI_KERNEL signal codes.
MFC after:	1 week
2012-09-14 22:05:09 +00:00
eadler
e08a8123c5 Bump date missed in r202756
PR:		docs/171624
Submitted by:	bdrewery
Approved by:	gabor
MFC after:	3 days
2012-09-14 17:50:42 +00:00
ed
0fa239bbd7 Implement LIST_PREV().
Regular LISTs have been implemented in such a way that the prev-pointer
does not point to the previous element, but to the next-pointer stored
in the previous element. This is done to simplify LIST_REMOVE(). This
macro can be implemented without knowing the address of the list head.

Unfortunately this makes it harder to implement LIST_PREV(), which is
why this macro was never here. Still, it is possible to implement this
macro. If the prev-pointer points to the list head, we return NULL.
Otherwise we simply subtract the offset of the prev-pointer within the
structure.

It's not as efficient as traversing forward of course, but in practice
it shouldn't be that bad. In almost all use cases, people will want to
compare the value returned by LIST_PREV() against NULL, so an optimizing
compiler will not emit code that does more branching than TAILQs.

While there, make the code a bit more readable by introducing
__member2struct(). This makes STAILQ_LAST() far more readable.

MFC after:	1 month
2012-09-12 21:03:48 +00:00
joel
b078416fae Remove trailing whitespace. 2012-08-21 20:40:12 +00:00
davidxu
20f511dcbd Add manual pages for clock_getcpuclockid and pthread_getcpuclockid. 2012-08-21 09:18:28 +00:00
gjb
8670397617 General mdoc(7) and typo fixes.
PR:		167734
Submitted by:	Nobuyuki Koganemaru (kogane!jp.freebsd.org)
MFC after:	3 days
2012-05-11 20:06:46 +00:00
joel
0ef023ae5b mdoc: fix column names, indentation, column separation within each row, and
quotation. Also make sure we have the same amount of columns in each row as
the number of columns we specify in the head arguments.

Reviewed by:	brueffer
2012-04-07 09:05:30 +00:00
eadler
1ef5fe44d3 Remove trailing whitespace per mdoc lint warning
Disussed with:	gavin
No objection from:	doc
Approved by:	joel
MFC after:	3 days
2012-03-29 05:02:12 +00:00
joel
db7581ccf5 Make sure sections are sorted into conventional order. 2012-03-25 16:00:56 +00:00
davidxu
aea001420f Add implementation note about when a condition variable can be destroyed. 2012-03-16 05:05:37 +00:00
gjb
9761e3fdaf Fix various typos in manual pages.
Submitted by:	amdmi3
PR:		165431
MFC after:	1 week
2012-02-25 14:31:25 +00:00
kevlo
f0596397a6 Add offsetof.3 man page
Obtained from:	OpenBSD
2012-02-08 08:42:17 +00:00
uqs
962d9f7018 Pull up vendor changes to mdoc(7)
This switches us to using -isoC-2011 as the symbol name which is used by
groff and mdocml. It follows the change to 4 digit years as done with
IEEE Std 1003 post-1999.

MFC after:	2 weeks (groff changes only)
2012-01-05 21:36:12 +00:00
ed
3e678d58aa Reimplement <tgmath.h> on top of __generic().
The macro construction used now, is almost identical to the code
provided in C11 proposal N1404. This new version doesn't seem to
introduce any regressions according to the regression test in tools/,
but still seems to malfunction with Clang on certain aspects.

The new code does work successfully with GCC 4.2, 4.6 and 4.7. With 4.7,
it also works when __generic() is implemented on top of _Generic().

Discussed with:	stefanf
2012-01-05 10:46:22 +00:00
ed
88405d6b4d Document restriction on 32-bits and 64-bits datatypes. 2011-12-27 22:14:35 +00:00
ed
cbd2bf6e79 Add missing \.
While sorting the MLINKS by name, I forgot to re-add it.
2011-12-27 13:01:10 +00:00
ed
f175ea262c Add manual page for atomic operations. 2011-12-27 12:58:54 +00:00