R |
Race conditions
|
among threads
|
avoiding
|
word tearing
|
RAISE macro
|
Read-write lock attributes objects
|
creating
|
destroying
|
get process-shared attribute value
|
set process-shared attribute value
|
Read-write locks #1
|
Read-write locks #2
|
attributes
|
changing object name in
|
creating #1
|
creating #2
|
DECthreads tis interface routines for
|
destroying #1
|
destroying #2
|
destroying #3
|
initializing #1
|
initializing #2
|
initializing #3
|
locking
|
for read access #1
|
for read access #2
|
for write access #1
|
for write access #2
|
locking for read access
|
locking for read access without waiting
|
locking for write access
|
locking for write access without waiting
|
obtaining object name
|
process-shared
|
thread priority
|
under the DECthreads thread-independent services (tis) interface
|
unlocking
|
for read access
|
for write access
|
using in thread-safe library code
|
writer precedence
|
Read-write locks attributes objects
|
initializing
|
Recursive mutexes
|
Reentrant code
|
required for multithreaded programming
|
required for thread-safe code
|
See also Thread-reentrant code
|
RERAISE macro #1
|
RERAISE macro #2
|
Round-robin (RR) scheduling policy
|
S |
Scheduling parameters
|
of threads
|
getting
|
setting
|
Scheduling parameters attribute
|
of thread attributes object
|
getting
|
setting
|
Scheduling policy attribute
|
of thread attributes object
|
getting
|
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
|
Shared memory
|
using from threads
|
Signal masks (DIGITAL UNIX)
|
See Thread signal masks
|
Signals (DIGITAL UNIX)
|
per-thread usage
|
synchronous
|
reported as exceptions
|
sigwait() routine
|
sigwait() service (DIGITAL UNIX)
|
Stack address attribute
|
of thread attributes object
|
getting
|
setting
|
Stack memory
|
using from threads
|
Stacks
|
of threads
|
See Thread stacks
|
Stacksize attribute
|
of thread attributes object
|
getting
|
setting
|
Static memory
|
using before release of mutex
|
using from threads
|
Status exceptions
|
Synchronization objects
|
condition variables
|
mutexes
|
read-write locks
|
stack-based
|
static initialization inappropriate for
|
static initialization of
|
Synchronous cancelation
|
of threads
|
cleanup from
|
Synchronous thread cancelation
|
cleanup from
|
SYSGEN
|
MULTITHREAD parameter
|
SYSGEN (OpenVMS)
|
MULTITHREAD parameter
|
System contention scope #1
|
System contention scope #2
|
of threads
|
System services
|
cancelability from DECthreads #1
|
cancelability from DECthreads #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
|
guardsize attribute #5
|
guardsize attribute #6
|
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
|
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 DECthreads
|
performance of routines
|
read-write locks
|
run-time linkages to routines
|
summary of routines
|
thread-specific data
|
Thread objects
|
naming #1
|
naming #2
|
Thread-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
|
getting
|
Thread signal masks (DIGITAL UNIX)
|
getting
|
setting
|
Thread-specific data
|
keys
|
creating #1
|
creating #2
|
destroying #1
|
destroying #2
|
getting #1
|
getting #2
|
naming #1
|
naming #2
|
setting #1
|
setting #2
|
under the DECthreads 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
|
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 DIGITAL UNIX
|
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 synchronous cancelation
|
cleanup handlers #1
|
cleanup handlers #2
|
cleanup handlers #3
|
concurrency level #1
|
concurrency level #2
|
contention scope
|
context-switching
|
in kernel
|
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
|
getting #1
|
getting #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
|
scheduling
|
alternative policies
|
alternative priorities
|
calculating priority
|
effects of scheduling policy
|
inheriting attributes
|
issues
|
real-time (DIGITAL UNIX)
|
scheduling parameters
|
getting
|
setting
|
See also Multithreaded programming
|
sending signals to
|
sequence numbers
|
getting
|
signal masks for (DIGITAL UNIX)
|
getting
|
setting
|
starting
|
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 DECthreads global mutex
|
unlocking mutexes #1
|
unlocking mutexes #2
|
unlocking the DECthreads global mutex
|
using a stack guard area
|
using dynamic memory
|
using shared 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
|
yielding to another thread
|
Throughput scheduling policy
|
Time
|
expiration
|
obtaining
|
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_wait() routine
|
using
|
tis_getspecific() 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_testcancel() routine
|
using
|
tis_unlock_global() routine
|
using
|
tis_write_lock() routine
|
using
|
tis_write_trylock() routine
|
using
|
tis_write_unlock() routine
|
TRY macro
|
restrictions
|
Two-level scheduling
|
under DIGITAL UNIX
|
under OpenVMS Alpha
|