resumption: termination vs. resumption, exception handling · 41
rethrow: an exception · 45; exception · 74
Runnable · 724
run-time interpreter for printf( ) · 180
run-time type identification · 599; and efficiency · 613; and multiple inheritance · 608, 611, 619; and templates · 610; and void pointers · 609; before( ) · 607; casting to intermediate levels · 608; difference between dynamic_cast and typeid( ) · 609; mechanism & overhead · 619; misuse · 612; typeinfo · 619; VTABLE · 619; when to use it · 612
runtime_error: Standard C++ library exception type · 60
S
Scott Meyers · 84
sed · 234
seekg( ) · 204
seeking in iostreams · 203
seekp( ) · 204
serialization · 247
serialization, thread · 781
set: STL set class example · 475
set_terminate( ) · 46
set_unexpected( ) · 63; exception handling · 63
setChanged( ) · 702
setf( ), iostreams · 215, 244
setjmp( ) · 35
setPriority( ) · 740
signal( ) · 34, 76, 764
signal( ), threading · 772
simulating virtual constructors · 691
Singleton · 665; and ZThreads library (concurrency) · 758; implemented with Curiously Recurring Template Pattern · 670; Meyers’ Singleton · 669
sleep( ) · 764; threading · 736
slicing: object slicing and exception handling · 42
Smalltalk · 622
specification: exception · 62
stack unwinding · 38
standard: Standard C · 25; Standard C++ · 25
Standard C++ libraries: string class · 182
Standard C++ library: standard library exception types · 58
standard template library: set class example · 475
stdio · 176
STDIO.H · 195
stream · 182; output formatting · 214
streambuf · 201; and get( ) · 202
streampos, moving · 203
string: Standard C++ library string class · 182; transforming character strings to typed values · 209
stringizing, preprocessor · 222
strstream · 207
structural design patterns · 672
subobject: duplicate subobjects in multiple inheritance · 635
subtasks · 719
synchronization: (concurrency) example of problem from lack of synchronization · 762; and blocking · 765
synchronization, thread · 748
Synchronization_Exception (Concurrency) · 731
Synchronization_Exception, in ZThread library · 727
synchronized: threading, wrapper for an entire class · 753
SynchronousExecutor (Concurrency) · 733
T
task: defining for threading · 724
tellg( ) · 204
tellp( ) · 204
template: and run-time type identification · 610; function templates · 279
temporary: object · 234
terminate( ) · 46, 65; uncaught exceptions · 45
terminating threads · 765
termination: vs. resumption, exception handling · 41
termination problem, concurrency · 757
thread · 719; atomic operation · 763; blocked · 764; blocking and mutexes · 767; broadcast( ) · 765, 773, 787; busy wait · 762, 773; Cancelable class from ZThread libaray · 746; colliding over resources, improperly accessing shared resources · 744; Condition class for wait() and signal() · 772; cooperation · 771; dead state · 764; deadlock · 750, 795; deadlock, and priorities · 738; dining philosophers · 795; drawbacks · 803; example of problem from lack of synchronization · 762; getPriority( ) · 739; handshaking between tasks · 772; I/O and threads, blocking · 767; interrupt( ) · 765; interrupted status · 769; Interrupted_Exception · 769; iostreams and colliding output · 757; memory management · 740; multiple, for problem-solving · 772; mutex, for handshaking · 772; mutex, simplifying with the Guard template · 750; new state · 764; order of task shutdown · 746; order of thread execution · 737; priority · 738; producer-consumer · 777; queues solve problems · 781; race condition · 746; reference counting · 741; reference-counting with CountedPtr · 743; runnable state · 764; serialization · 781; setPriority( ) · 740; sharing resources · 740; signal( ) · 764, 772; sleep( ) · 736, 764; states · 764; synchronization · 748; synchronization and blocking · 765; synchronized wrapper for an entire class · 753; termination · 765; termination problem · 757; thread local storage · 754; threads and efficiency · 721; TQueue, solving threading problems with · 781; wait( ) · 764, 772; when to use threads · 803; yield( ) · 734; ZThread FastMutex · 761
thread object, concurrency · 726
thread, and concurrency · 719
ThreadedExecutor (Concurrency) · 731
throughput, optimize · 720
throw · 37, 38
throwing an exception · 37
TQueue, solving threading problems with · 781
transforming character strings to typed values · 209
try · 38; Function-level try blocks · 56
try block · 38; function-level · 56
type: automatic type conversions and exception handling · 42; run-time type identification (RTTI) · 599
typeid( ): difference between dynamic_cast and typeid( ), run-time type identification · 609
typeinfo: structure · 619
U
ULONG_MAX · 234
uncaught exceptions · 45
uncaught_exception( ) · 75
unexpected( ) · 63
Unix · 234
Urlocker, Zack · 660
user interface: responsive, with threading · 720, 728
V
value: transforming character strings to typed values · 209
Van Rossum, Guido · 804
variable: variable argument list · 181
vector of change · 664
virtuaclass="underline" simulating virtual constructors · 691; virtual functions inside constructors · 692
visitor pattern · 714
void: void pointers and run-time type identification · 609
VPTR · 692
VTABLE · 692; and run-time type identification · 619
W
wait( ), threading · 764, 772
web servers, multiprocessor · 721
wrapping, class · 176
write( ) · 191
ws · 225
Y
yield( ), threading · 734
Z
ZThread: Cancelable class · 746; Executors · 731; installing the library · 723; multithreading library for C++ · 722