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
|
RTLD_LAZY symbol resolution
|
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-safety
|
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
|