Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNo next file
Threads Module User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

C.3 Changes from Threads.h++ 1.4 to 2.0

C.3.1 Summary of Changes

Threads.h++ 2.0 was a major release of the Threads.h++ product. This release included numerous internal improvements, as well as important changes to the public interface.

Changes to the public interface in version 2.0 include:

C.3.2 Class Name Changes

The following tables list renamed classes for the Functor, Interthread Communication, Smart Pointer, Synchronization, Thread-compatible Exception, and Threading packages. For more information on the new class names, see the class descriptions in the Threads Module Reference Guide.

Table 8 lists the renamed classes in the Functor package.

Table 8: Functor package class name changes 

Former Name New Name

RWFunctor1<S1>

RWTFunctor1<S1>

RWFunctor1Imp<S1>

RWTFunctor1Imp<S1>

RWFunctor2<S1,S2>

RWTFunctor2<S1,S2>

RWFunctor2Imp<S1,S2>

RWTFunctor2Imp<S1,S2>

RWFunctorR0<SR>

RWTFunctorR0<SR>

RWFunctorR0Imp<SR>

RWTFunctorR0Imp<SR>

RWFunctorR1<SR,S1>

RWTFunctorR1<SR,S1>

RWFunctorR1Imp<SR,S1>

RWTFunctorR1Imp<SR,S1>

RWFunctorR2<SR,S1,S2>

RWTFunctorR2<SR,S1,S2>

RWFunctorR2Imp<SR,S1,S2>

RWTFunctorR2Imp<SR,S1,S2>

Table 9 lists the renamed classes in the Interthread Communication package.

Table 9: Interthread Communication package class name changes 

Former Name New Name

RWEscrowHandle<Redeemable>

RWTEscrowHandle<Redeemable>

RWEscrowImp<Redeemable>

RWTEscrowImp<Redeemable>

RWIOUEscrow<Redeemable>

RWTIOUEscrow<Redeemable>

RWIOUResult<Redeemable>

RWTIOUResult<Redeemable>

RWIOUTrap<Redeemable>

RWTIOUTrap<Redeemable>

RWPCPtrBufferBase<Type>

RWTPCPtrBufferBase<Type>

RWPCPtrQueue<Type>

RWTPCPtrQueue<Type>

RWPCPtrStack<Type>

RWTPCPtrStack<Type>

RWPCValBufferBase<Type>

RWTPCValBufferBase<Type>

RWPCValBufferBaseDecorated<Type,Decorator>

RWTPCValBufferBaseDecorated<Type,Decorator>

RWPCValBufferBaseGuarded<Type,GuardDecorator>

RWTPCValBufferBaseGuarded<Type,GuardDecorator>

RWPCValBufferBaseGuardedPrioritized<Type,GuardAndPriorityDecorator>

RWTPCValBufferBaseGuardedPrioritized<Type,GuardAndPriorityDecorator>

RWPCValBufferBasePrioritized<Type,PriorityDecorator>

RWTPCValBufferBasePrioritized<Type,PriorityDecorator>

RWPCValQueue<Type>

RWTPCValQueue<Type>

RWPCValQueueGuarded<Type>

RWTPCValQueueGuarded<Type>

RWPCValQueueGuardedPrioritized<Type>

RWTPCValQueueGuardedPrioritized<Type>

RWPCValQueuePrioritized<Type>

RWTPCValQueuePrioritized<Type>

RWPCValStack<Type>

RWTPCValStack<Type>

RWPCValStackGuarded<Type>

RWTPCValStackGuarded<Type>

RWPCValStackGuardedPrioritized<Type>

RWTPCValStackGuardedPrioritized<Type>

RWPCValStackPrioritized<Type>

RWTPCValStackPrioritized<Type>

Table 10 lists the renamed classes in the Smart Pointer package.

Table 10: Smart Pointer package class name changes 

Former Name New Name

RWCountedPointer<Body>

RWTCountedPointer<Body>

RWCountingBody<Mutex>

RWTCountingBody<Mutex>

RWMonitor<Mutex>

RWTMonitor<Mutex>

RWOnlyPointer<Body>

RWTOnlyPointer<Body>

RWPointer<Body>

RWTPointer<Body>

RWTHRBody

RWBodyBase

RWTHRHandle

RWHandleBase

Table 11 lists the renamed classes in the Synchronization package.

Table 11: Synchronization package class name changes 

Former Name New Name

RWGuardBase<Resource>

RWTGuardBase<Resource>

RWLockGuard<Resource>

RWTLockGuard<Resource>

RWLockGuardBase<Resource>

RWTLockGuardBase<Resource>

RWMonitor<Mutex>

RWTMonitor<Mutex>

RWReadGuardBase<Resource>

RWTReadGuardBase<Resource>

RWReadLockGuard<Resource>

RWTReadLockGuard<Resource>

RWReadLockGuardBase<Resource>

RWTReadLockGuardBase<Resource>

RWReadUnlockGuard<Resource>

RWTReadUnlockGuard<Resource>

RWTryLockGuard<Resource>

RWTTryLockGuard<Resource>

RWTryLockGuard<Resource>

RWTTryLockGuard<Resource>

RWTryWriteLockGuard<Resource>

RWTTryWriteLockGuard<Resource>

RWUnlockGuard<Resource>

RWTUnlockGuard<Resource>

RWWriteGuardBase<Resource>

RWTWriteGuardBase<Resource>

RWWriteLockGuard<Resource>

RWTWriteLockGuard<Resource>

RWWriteLockGuardBase<Resource>

RWTWriteLockGuardBase<Resource>

RWWriteUnlockGuard<Resource>

RWTWriteUnlockGuard<Resource>

Table 12 lists the renamed classes in the Thread-compatible Exception package.

Table 12: Thread-compatible Exception package class name changes 

Former Name New Name

RWTHRCompatibleException<Exception>

RWTTHRCompatibleException<Exception>

Table 13 lists the renamed classes in the Threading package.

Table 13: Threading package class name changes 

Former Name New Name

RWRunnableIOUFunction<Return>

RWTRunnableIOUFunction<Return>

RWThreadEscrowImp<Redeemable>

RWTThreadEscrowImp<Redeemable>

RWThreadIOUFunction<Return>

RWTThreadIOUFunction<Return>

RWThreadLocal<Type>

RWTThreadLocal<Type>

C.3.3 Exception Name Changes

Table 8 lists the renamed exception classes in the Execution Tracing package. For more information on the new class names, see the class descriptions in the Threads Module Reference Guide.

Table 14: Execution Tracing package exception class name changes 

Former Name New Name

RWTraceEventClientImp::TraceClientAlreadyConnected

RWTraceClientAlreadyConnected

RWTraceSingleClientFilterImp::TraceClientAlreadyAdded

RWTraceClientAlreadyAdded

RWTraceSingleClientFilterImp::TraceClientAlreadyAdded

RWTraceClientAlreadyAdded

RWTraceEventClientImp::TraceClientNotConnected

RWTraceClientNotConnected

RWTraceEventClient::InvalidPointer

RWTraceInvalidPointer

C.3.4 Global Function and Macro Name Changes

The following table lists the renamed global functions and macros in the Threads Module. For more information on the new names, see the global reference descriptions in the Threads Module Reference Guide.

Table 15: Global function and macro name changes 

Former Name New Name

rwMakeFunctor0()

rwtMakeFunctor0()

rwMakeFunctor1()

rwtMakeFunctor1()

rwMakeFunctor2()

rwtMakeFunctor2()

rwMakeFunctorR0()

rwtMakeFunctorR0()

rwMakeFunctorR1()

rwtMakeFunctorR1()

rwMakeFunctorR2()

rwtMakeFunctorR2()

rwMakeIOUCallback()

rwtMakeIOUCallback()

rwMakeRunnableCallback()

rwtMakeRunnableCallback()

rwMakeRunnableFunction()

rwtMakeRunnableFunction()

rwMakeRunnableGuard()

rwtMakeRunnableGuard()

rwMakeRunnableIOUFunction()

rwtMakeRunnableIOUFunction()

rwMakeThreadFunction()

rwtMakeThreadFunction()

rwMakeThreadIOU()

rwtMakeThreadIOU()

rwMakeThreadIOUFunction()

rwtMakeThreadIOUFunction()

C.3.5 Other Changes

Table 16 lists the remaining major changes in Threads.h++ 2.0 of the Threads.h++ API. For more information on API changes, see the readme or class descriptions in the Threads Module Reference Guide for this version.

Table 16: Changes from Threads.h++ 1.4 to 2.0 

API Description of Change

RWCancellationState

RWCancellationState is no longer an enumerated type, but a typedef for a function pointer.

RWSafeCounter

New class, located within the Smart Pointer package. This typedef can be used as the second template parameter for RWTCountingPointer<Body, Counter=RWSafeCounter>, in order to implement multithread-safe reference counting.

RWSynchObject

Functionality previously provided by member function RWSynchObject::enableCancellation(void)has been replaced by RWSynchObject::setCancellation(RWCancellationState).

RWTCountingPointer

New class, located within the Smart Pointer package. Defines a reference-counted smart pointer that provides reference counting semantics for types that do not directly support reference counting.

RWTSingleton

New class, located within the Smart Pointer package. Ensures that a class has only one instance, and provides a global point of access to it.

RWUnsafeCounter

New class, located within the Smart Pointer package. Can be used as the second template parameter for RWTCountingPointer<Body, Counter=RWSafeCounter>, to achieve greater efficiency in reference counting if thread-safety is not required.

Functions that previously threw RWxmsg

Several functions that previously threw RWxmsg exceptions now throw thread-compatible exceptions such as RWTHRInternalError. See the readme file for a detailed list of these functions.

Exception specifications

Removed all exception specifications from Threads.h++ code.

RW_THR_DEBUG

It is no longer necessary to define RW_THR_DEBUG to build with the debug version of the library. Only RWDEBUG need be defined.



Previous fileTop of DocumentContentsIndex pageNo next file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.