Chapter 4 |
4
|
Writing Thread-Safe Libraries
|
4.1
|
Features of the tis Interface
|
4.1.1
|
Reentrant Code Required
|
4.1.2
|
Performance of tis Interface Routines
|
4.1.3
|
Run-Time Linkage of tis Interface Routines
|
4.1.4
|
Cancelation Points
|
4.2
|
Using Mutexes
|
4.3
|
Using Condition Variables
|
4.4
|
Using Thread-Specific Data
|
4.5
|
Using Read-Write Locks
|
Chapter 5 |
5
|
Using the Exceptions Package
|
5.1
|
About the Exceptions Package
|
5.1.1
|
Supported Programming Languages
|
5.1.2
|
Relation of Exceptions to Return Codes and Signals
|
5.2
|
Why Use Exceptions
|
5.3
|
Exception Programming
|
5.3.1
|
Declaring and Initializing an Exception
|
5.3.2
|
Raising an Exception
|
5.3.3
|
Catching an Exception
|
5.3.4
|
Reraising an Exception
|
5.3.5
|
Expressing Epilogue Actions
|
5.4
|
Exception Objects
|
5.4.1
|
Declaring and Initializing Exception Objects
|
5.4.2
|
Address Exceptions and Status Exceptions
|
5.4.3
|
How Exceptions Terminate
|
5.5
|
Exception Scopes
|
5.6
|
Raising Exceptions
|
5.7
|
Exception Handling Macros
|
5.7.1
|
Context of the Handler
|
5.7.2
|
Handlers and Macros
|
5.7.3
|
Catching Specific Exceptions
|
5.7.4
|
Catching Unspecified Exceptions
|
5.7.5
|
Reraising the Current Exception
|
5.7.6
|
Defining Epilogue Actions
|
5.8
|
Operations on Exceptions
|
5.8.1
|
Referencing the Caught Exception
|
5.8.2
|
Setting a System-Defined Error Status
|
5.8.3
|
Obtaining a System-Defined Error Status
|
5.8.4
|
Reporting a Caught Exception
|
5.8.5
|
Determining Whether Two Exceptions Match
|
5.9
|
Using Exceptions
|
5.9.1
|
Develop Naming Conventions for Exceptions
|
5.9.2
|
Enclose Appropriate Actions in an Exception Scope
|
5.9.3
|
Raise Exceptions Prior to Performing Side-Effects
|
5.9.4
|
Exiting an Exception Scope
|
5.9.5
|
Declare Variables Within Handler Code as Volatile
|
5.9.6
|
Reraise Caught Exceptions That Are Not Fully Handled
|
5.9.7
|
Avoid Dynamically Allocated Exception Objects
|
5.10
|
Exceptions Defined by the POSIX Threads Library
|
5.11
|
Interoperability of Language-Specific Exceptions
|
5.12
|
Host Operating System Dependencies
|
5.12.1
|
Tru64 UNIX Dependencies
|
5.12.2
|
OpenVMS Conditions and Exceptions
|
Chapter 6 |
6
|
Examples
|
6.1
|
Prime Number Search Example
|
6.2
|
Asynchronous User Interface Example
|
Part 2 |
Part 2
|
POSIX.1 (pthread) Routines Reference
|
Command 1
|
pthread_atfork
|
Command 2
|
pthread_attr_destroy
|
Command 3
|
pthread_attr_getdetachstate
|
Command 4
|
pthread_attr_getguardsize
|
Command 5
|
pthread_attr_getinheritsched
|
Command 6
|
pthread_attr_getname_np
|
Command 7
|
pthread_attr_getschedparam
|
Command 8
|
pthread_attr_getschedpolicy
|
Command 9
|
pthread_attr_getscope
|
Command 10
|
pthread_attr_getstackaddr
|
Command 11
|
pthread_attr_getstackaddr_np
|
Command 12
|
pthread_attr_getstacksize
|
Command 13
|
pthread_attr_init
|
Command 14
|
pthread_attr_setdetachstate
|
Command 15
|
pthread_attr_setguardsize
|
Command 16
|
pthread_attr_setinheritsched
|
Command 17
|
pthread_attr_setname_np
|
Command 18
|
pthread_attr_setschedparam
|
Command 19
|
pthread_attr_setschedpolicy
|
Command 20
|
pthread_attr_setscope
|
Command 21
|
pthread_attr_setstackaddr
|
Command 22
|
pthread_attr_setstackaddr_np
|
Command 23
|
pthread_attr_setstacksize
|
Command 24
|
pthread_cancel
|
Command 25
|
pthread_cleanup_pop
|
Command 26
|
pthread_cleanup_push
|
Command 27
|
pthread_condattr_destroy
|
Command 28
|
pthread_condattr_getpshared
|
Command 29
|
pthread_condattr_init
|
Command 30
|
pthread_condattr_setpshared
|
Command 31
|
pthread_cond_broadcast
|
Command 32
|
pthread_cond_destroy
|
Command 33
|
pthread_cond_getname_np
|
Command 34
|
pthread_cond_init
|
Command 35
|
pthread_cond_setname_np
|
Command 36
|
pthread_cond_signal
|
Command 37
|
pthread_cond_signal_int_np
|
Command 38
|
pthread_cond_sig_preempt_int_np
|
Command 39
|
pthread_cond_timedwait
|
Command 40
|
pthread_cond_wait
|
Command 41
|
pthread_create
|
Command 42
|
pthread_delay_np
|
Command 43
|
pthread_detach
|
Command 44
|
pthread_equal
|
Command 45
|
pthread_exc_get_status_np
|
Command 46
|
pthread_exc_matches_np
|
Command 47
|
pthread_exc_report_np
|
Command 48
|
pthread_exc_set_status_np
|
Command 49
|
pthread_exit
|
Command 50
|
pthread_getconcurrency
|
Command 51
|
pthread_getname_np
|
Command 52
|
pthread_getschedparam
|
Command 53
|
pthread_getsequence_np
|
Command 54
|
pthread_getspecific
|
Command 55
|
pthread_get_expiration_np
|
Command 56
|
pthread_join
|
Command 57
|
pthread_key_create
|
Command 58
|
pthread_key_delete
|
Command 59
|
pthread_key_getname_np
|
Command 60
|
pthread_key_setname_np
|
Command 61
|
pthread_kill
|
Command 62
|
pthread_lock_global_np
|
Command 63
|
pthread_mutexattr_destroy
|
Command 64
|
pthread_mutexattr_getpshared
|
Command 65
|
pthread_mutexattr_gettype
|
Command 66
|
pthread_mutexattr_init
|
Command 67
|
pthread_mutexattr_setpshared
|
Command 68
|
pthread_mutexattr_settype
|
Command 69
|
pthread_mutex_destroy
|
Command 70
|
pthread_mutex_getname_np
|
Command 71
|
pthread_mutex_init
|
Command 72
|
pthread_mutex_lock
|
Command 73
|
pthread_mutex_setname_np
|
Command 74
|
pthread_mutex_trylock
|
Command 75
|
pthread_mutex_unlock
|
Command 76
|
pthread_once
|
Command 77
|
pthread_rwlockattr_destroy
|
Command 78
|
pthread_rwlockattr_getpshared
|
Command 79
|
pthread_rwlockattr_init
|
Command 80
|
pthread_rwlockattr_setpshared
|
Command 81
|
pthread_rwlock_destroy
|
Command 82
|
pthread_rwlock_getname_np
|
Command 83
|
pthread_rwlock_init
|
Command 84
|
pthread_rwlock_rdlock
|
Command 85
|
pthread_rwlock_setname_np
|
Command 86
|
pthread_rwlock_tryrdlock
|
Command 87
|
pthread_rwlock_trywrlock
|
Command 88
|
pthread_rwlock_unlock
|
Command 89
|
pthread_rwlock_wrlock
|
Command 90
|
pthread_self
|
Command 91
|
pthread_setcancelstate
|
Command 92
|
pthread_setcanceltype
|
Command 93
|
pthread_setconcurrency
|
Command 94
|
pthread_setname_np
|
Command 95
|
pthread_setschedparam
|
Command 96
|
pthread_setspecific
|
Command 97
|
pthread_sigmask
|
Command 98
|
pthread_testcancel
|
Command 99
|
pthread_unlock_global_np
|
Command 100
|
pthread_yield_np
|
Command 101
|
sched_get_priority_max
|
Command 102
|
sched_get_priority_min
|
Command 103
|
sched_yield
|
Command 104
|
sigwait
|