--- pth.pod 2002/11/03 09:59:33 1.158
+++ pth.pod 2002/11/03 11:15:04 1.159
@@ -714,6 +714,11 @@
Name of thread (up to 40 characters are stored only), mainly for debugging
purposes.
+=item C<PTH_ATTR_DISPATCHES> (read-write) [C<int>]
+
+In bounded attribute objects, this field is incremented every time the
+context is switched to the associated thread.
+
=item C<PTH_ATTR_JOINABLE> (read-write> [C<int>]
The thread detachment type, C<TRUE> indicates a joinable thread,
@@ -799,8 +804,9 @@
This initializes an attribute object I<attr> to the default values:
C<PTH_ATTR_PRIO> := C<PTH_PRIO_STD>, C<PTH_ATTR_NAME> := `C<unknown>',
-C<PTH_ATTR_JOINABLE> := C<TRUE>, C<PTH_ATTR_CANCELSTATE> :=
-C<PTH_CANCEL_DEFAULT>, C<PTH_ATTR_STACK_SIZE> := 64*1024 and
+C<PTH_ATTR_DISPATCHES> := C<0>, C<PTH_ATTR_JOINABLE> := C<TRUE>,
+C<PTH_ATTR_CANCELSTATE> := C<PTH_CANCEL_DEFAULT>,
+C<PTH_ATTR_STACK_SIZE> := 64*1024 and
C<PTH_ATTR_STACK_ADDR> := C<NULL>. All other C<PTH_ATTR_*> attributes are
read-only attributes and don't receive default values in I<attr>, because they
exists only for bounded attribute objects.
@@ -814,6 +820,7 @@
PTH_ATTR_PRIO int
PTH_ATTR_NAME char *
+ PTH_ATTR_DISPATCHES int
PTH_ATTR_JOINABLE int
PTH_ATTR_CANCEL_STATE unsigned int
PTH_ATTR_STACK_SIZE unsigned int
@@ -828,6 +835,7 @@
PTH_ATTR_PRIO int *
PTH_ATTR_NAME char **
+ PTH_ATTR_DISPATCHES int *
PTH_ATTR_JOINABLE int *
PTH_ATTR_CANCEL_STATE unsigned int *
PTH_ATTR_STACK_SIZE unsigned int *
@@ -860,12 +868,14 @@
This spawns a new thread with the attributes given in I<attr> (or
C<PTH_ATTR_DEFAULT> for default attributes - which means that thread priority,
joinability and cancel state are inherited from the current thread) with the
-starting point at routine I<entry>. This entry routine is called as
-`pth_exit(I<entry>(I<arg>))' inside the new thread unit, i.e., I<entry>'s
-return value is fed to an implicit pth_exit(3). So the thread usually can exit
-by just returning. Nevertheless the thread can also exit explicitly at any
-time by calling pth_exit(3). But keep in mind that calling the POSIX function
-exit(3) still terminates the complete process and not just the current thread.
+starting point at routine I<entry>; the dispatch count is not inherited from
+the current thread if I<attr> is not specified - rather, it is initialized
+to zero. This entry routine is called as `pth_exit(I<entry>(I<arg>))' inside
+the new thread unit, i.e., I<entry>'s return value is fed to an implicit
+pth_exit(3). So the thread can also exit by just returning. Nevertheless
+the thread can also exit explicitly at any time by calling pth_exit(3). But
+keep in mind that calling the POSIX function exit(3) still terminates the
+complete process and not just the current thread.
There is no B<Pth>-internal limit on the number of threads one can spawn,
except the limit implied by the available virtual memory. B<Pth> internally
|