Tru64 UNIX
Guide to the POSIX Threads Library
Previous
Contents
Index
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
Previous
Next
Contents
Index