| R |
|
Race conditions
|
|
among threads
|
|
avoiding
|
|
word tearing
|
|
RAISE macro
|
|
Read-write lock attributes objects
|
|
creating
|
|
destroying
|
|
get process-shared attribute value
|
|
initializing
|
|
set process-shared attribute value
|
|
Read-write locks #1
|
|
Read-write locks #2
|
|
attributes
|
|
changing object name in
|
|
creating #1
|
|
creating #2
|
|
destroying #1
|
|
destroying #2
|
|
destroying #3
|
|
initializing #1
|
|
initializing #2
|
|
initializing #3
|
|
locking
|
|
for read access #1
|
|
for read access #2
|
|
for read access #3
|
|
without waiting
|
|
for write access #1
|
|
for write access #2
|
|
for write access #3
|
|
without waiting
|
|
obtaining object name
|
|
process-shared
|
|
thread priority
|
|
under the thread-independent services (tis) interface
|
|
unlocking
|
|
for read access
|
|
for write access
|
|
using in thread-safe library code
|
|
writer precedence
|
|
Realtime scheduling
|
|
of POSIX Threads
|
|
under Tru64 UNIX
|
|
Recursive mutexes
|
|
Reentrant code
|
|
required for multithreaded programming
|
|
required for thread-safe code
|
|
RERAISE macro #1
|
|
RERAISE macro #2
|
|
Round-robin (RR) scheduling policy
|
| S |
|
Scheduling parameters
|
|
of threads
|
|
obtaining
|
|
setting
|
|
Scheduling parameters attribute
|
|
of thread attributes object
|
|
obtaining
|
|
setting
|
|
Scheduling policy attribute
|
|
of thread attributes object
|
|
obtaining
|
|
setting
|
|
Scheduling priority attribute, of thread attributes object
|
|
sched_get_priority_max() routine
|
|
sched_get_priority_min() routine
|
|
sched_yield() routine
|
|
Sequence numbers
|
|
See Thread sequence numbers
|
|
Sharing memory
|
|
between threads
|
|
Sharing memory, between threads
|
|
Signal masks (Tru64 UNIX)
|
|
See Thread signal masks
|
|
Signals (Tru64 UNIX)
|
|
per-thread usage
|
|
synchronous
|
|
reported as exceptions
|
|
sigwait() routine #1
|
|
sigwait() routine #2
|
|
Spurious wakeups
|
|
Stack address attribute
|
|
of thread attributes object
|
|
obtaining #1
|
|
obtaining #2
|
|
setting #1
|
|
setting #2
|
|
Stack memory
|
|
Stack memory, using from threads
|
|
Stacks, of threads
|
|
See Thread stacks
|
|
Stacksize attribute
|
|
of thread attributes object
|
|
obtaining
|
|
setting
|
|
Static memory
|
|
using before release of mutex
|
|
using from threads
|
|
Status exceptions
|
|
$SYNC
|
|
Synchronization objects
|
|
condition variables
|
|
mutexes
|
|
read-write locks
|
|
stack-based
|
|
static initialization inappropriate for
|
|
static initialization of
|
|
Synchronizing I/O completion #1
|
|
Synchronizing I/O completion #2
|
|
Synchronous cancelation
|
|
of threads
|
|
Synchronous thread cancelation
|
|
SYSGEN
|
|
MULTITHREAD parameter
|
|
SYSGEN (OpenVMS)
|
|
MULTITHREAD parameter
|
|
System contention scope #1
|
|
System contention scope #2
|
|
of threads
|
|
System services, cancelability from POSIX Threads #1
|
|
System services, cancelability from POSIX Threads #2
|
| T |
|
THIS_CATCH exception object
|
|
Thread attributes objects
|
|
cancelability state attribute
|
|
setting #1
|
|
setting #2
|
|
cancelability type attribute
|
|
setting
|
|
contention scope attribute #1
|
|
contention scope attribute #2
|
|
contention scope attribute #3
|
|
creating
|
|
destroying
|
|
detachstate attribute #1
|
|
detachstate attribute #2
|
|
guardsize attribute #1
|
|
guardsize attribute #2
|
|
guardsize attribute #3
|
|
guardsize attribute #4
|
|
inherit scheduling attribute #1
|
|
inherit scheduling attribute #2
|
|
inherit scheduling attribute #3
|
|
initializing
|
|
naming #1
|
|
naming #2
|
|
scheduling parameters #1
|
|
scheduling parameters #2
|
|
scheduling policy attribute #1
|
|
scheduling policy attribute #2
|
|
scheduling policy attribute #3
|
|
scheduling priority attribute
|
|
setting attributes in
|
|
stack address attribute #1
|
|
stack address attribute #2
|
|
stack address attribute #3
|
|
stack address attribute #4
|
|
stack address attribute #5
|
|
stacksize attribute #1
|
|
stacksize attribute #2
|
|
stacksize attribute #3
|
|
Thread-independent services (tis) interface #1
|
|
Thread-independent services (tis) interface #2
|
|
condition variables
|
|
features of
|
|
mutexes
|
|
of POSIX Threads
|
|
performance of routines
|
|
read-write locks
|
|
run-time linkages to routines
|
|
summary of routines
|
|
thread-specific data
|
|
Thread objects
|
|
naming #1
|
|
naming #2
|
|
Thread objects, naming #1
|
|
Thread objects, naming #2
|
|
Thread-reentrant code
|
|
See Reentrant code
|
|
Thread-safe code
|
|
in libraries
|
|
requires reentrant compilation
|
|
using condition variables
|
|
using mutexes
|
|
using read-write locks
|
|
using thread-specific data
|
|
Thread sequence numbers, obtaining
|
|
Thread signal masks (Tru64 UNIX)
|
|
obtaining
|
|
setting
|
|
Thread-specific data
|
|
keys
|
|
creating #1
|
|
creating #2
|
|
destroying #1
|
|
destroying #2
|
|
naming #1
|
|
naming #2
|
|
obtaining #1
|
|
obtaining #2
|
|
setting #1
|
|
setting #2
|
|
under the thread-independent services (tis) interface
|
|
using in thread-safe library code
|
|
Thread-specific data keys
|
|
naming #1
|
|
naming #2
|
|
Thread stacks
|
|
default size of
|
|
under OpenVMS
|
|
diagnosing overflow
|
|
identifying overflow of #1
|
|
identifying overflow of #2
|
|
incremental allocation
|
|
under Tru64 UNIX
|
|
managing
|
|
minimum size of
|
|
under OpenVMS
|
|
requesting absolute size of
|
|
setting the origin address
|
|
size of
|
|
determining
|
|
requesting absolute
|
|
tracing
|
|
using a stack guard area #1
|
|
using a stack guard area #2
|
|
under Tru64 UNIX
|
|
using a stack overflow warning area #1
|
|
using a stack overflow warning area #2
|
|
THREADCP tool
|
|
THREADCP tool (OpenVMS)
|
|
Threads
|
|
advantages of
|
|
attributes of
|
|
avoiding nonreentrant routines
|
|
cancelability state
|
|
cancelability type
|
|
canceling #1
|
|
canceling #2
|
|
asynchronously
|
|
code example
|
|
control of
|
|
delivery of cancelation request
|
|
exception-based implementation
|
|
PTHREAD_CANCELED return value
|
|
synchronously
|
|
whether enabled
|
|
changes of state
|
|
cleanup
|
|
from asynchronous cancelation
|
|
from deferred cancelation
|
|
cleanup handlers #1
|
|
cleanup handlers #2
|
|
cleanup handlers #3
|
|
concurrency level #1
|
|
concurrency level #2
|
|
contention scope
|
|
context-switching
|
|
in user mode
|
|
creating #1
|
|
creating #2
|
|
deadlocks among
|
|
delaying execution of
|
|
delivering cancelation requests
|
|
destroying #1
|
|
destroying #2
|
|
detaching #1
|
|
detaching #2
|
|
executing
|
|
granularity considerations
|
|
identifiers
|
|
comparing
|
|
obtaining #1
|
|
obtaining #2
|
|
joining with another thread #1
|
|
joining with another thread #2
|
|
locking mutexes #1
|
|
locking mutexes #2
|
|
on multiprocessor systems
|
|
one-time initialization of #1
|
|
one-time initialization of #2
|
|
one-time initialization of #3
|
|
overview of
|
|
priority inversion among
|
|
process contention scope
|
|
process-shared synchronization objects
|
|
race conditions among
|
|
reentrant code for
|
|
releasing processor #1
|
|
releasing processor #2
|
|
scheduling
|
|
alternative policies
|
|
alternative priorities
|
|
calculating priority
|
|
effects of scheduling policy
|
|
inheriting attributes
|
|
issues
|
|
realtime (Tru64 UNIX)
|
|
scheduling parameters
|
|
obtaining
|
|
setting
|
|
See also Multithreaded programming
|
|
sending signals to
|
|
sequence numbers
|
|
obtaining
|
|
sharing memory
|
|
signal masks for (Tru64 UNIX)
|
|
obtaining
|
|
setting
|
|
synchronizing memory access
|
|
system contention scope
|
|
terminating #1
|
|
terminating #2
|
|
due to error
|
|
normally
|
|
series of actions #1
|
|
series of actions #2
|
|
via pthread_exit() routine
|
|
thread-specific data
|
|
time slicing
|
|
unlocking mutexes #1
|
|
unlocking mutexes #2
|
|
unlocking POSIX Threads global mutex
|
|
unlocking the POSIX Threads global mutex
|
|
using a stack guard area
|
|
using a stack overflow warning area
|
|
using dynamic memory
|
|
using stack memory
|
|
using static memory
|
|
waiting for another thread to terminate #1
|
|
waiting for another thread to terminate #2
|
|
waiting on mutexes
|
|
wakeups for
|
|
broadcasting #1
|
|
broadcasting #2
|
|
signaling #1
|
|
signaling #2
|
|
signaling #3
|
|
signaling #4
|
|
yielding processor to another thread #1
|
|
yielding processor to another thread #2
|
|
yielding to another thread
|
|
Throughput scheduling policy
|
|
Time, expiration, obtaining #1
|
|
Time, expiration, obtaining #2
|
|
Time slicing, of threads
|
|
tis interface
|
|
See Thread-independent services (tis) interface
|
|
tis_cond_broadcast() routine
|
|
tis_cond_destroy() routine
|
|
tis_cond_init() routine
|
|
tis_cond_signal() routine
|
|
tis_cond_timedwait() routine
|
|
tis_cond_wait() routine
|
|
using
|
|
tis_getspecific() routine
|
|
tis_get_expiration() routine
|
|
tis_io_complete() routine
|
|
tis_key_create() routine
|
|
tis_key_delete() routine
|
|
tis_lock_global() routine
|
|
using
|
|
tis_mutex_destroy() routine
|
|
tis_mutex_init() routine
|
|
using
|
|
tis_mutex_lock() routine
|
|
tis_mutex_trylock() routine
|
|
tis_mutex_unlock() routine
|
|
tis_once() routine
|
|
tis_read_lock() routine
|
|
using
|
|
tis_read_trylock() routine
|
|
using
|
|
tis_read_unlock() routine
|
|
tis_rwlock_destroy() routine
|
|
using
|
|
tis_rwlock_init() routine
|
|
using
|
|
tis_self() routine
|
|
tis_setcancelstate() routine
|
|
tis_setspecific() routine
|
|
tis_sync() routine
|
|
tis_testcancel() routine
|
|
using
|
|
tis_unlock_global() routine
|
|
using
|
|
tis_write_lock() routine
|
|
using
|
|
tis_write_trylock() routine
|
|
using
|
|
tis_write_unlock() routine
|
|
tis_yield() routine
|
|
Tru64 UNIX operating system, using POSIX Threads with
|
|
TRY macro
|
|
restrictions
|
|
Two-level scheduling
|
|
under OpenVMS Alpha
|
|
under Tru64 UNIX
|