Processing multiple threads
The ability of the DRA to process more than one thread at the same time is known as multithreading. Multithreading means that multiple CCTL or ODBA threads can be using the DRA at the same time. Multithreading applies to all DRA requests and ODBA calls.
Processing multiple CCTL threads
Multiple CCTL TCBs in a single address space can be used to process multiple CCTL threads. CCTL can dispatch each CCTL thread for a different CCTL TCB, and each CCTL TCB can call the DRA Startup/Router routine (DFSPRRC0) to process DRA requests.
To use the multithreading capability:
- The DRA must be initialized with more than one thread TCB. To initialize the DRA with more that one thread TCB, specify the MAXTHRD parameters (in the DRA Startup Table) as greater than one.
- The CCTL must be capable of processing its CCTL threads concurrently.
- The CCTL must have Suspend and Resume exit routines. The DRA uses these routines to notify the
CCTL of the status of thread processing.Important: : The Suspend exit routine can start executing before or after the Resume exit routine to starts executing, but the Suspend exit routine cannot finish executing before the Resume exit routine starts executing. When you design the Suspend and Resume exit routines, ensure that the Suspend exit routine can determine whether the Resume exit has started or completed execution. If the Suspend exit routine determines that the Resume exit routine has not started executing, the Suspend exit routine must not return to the caller. If the Suspend exit routine determines that the Resume exit routine has started or completed execution, the Suspend exit routine should return to the Suspend exit caller and consider the suspend request complete.
Processing multiple ODBA threads
To use the multithreading capability, the DRA must be initialized with more than one DRA thread. To do this, specify the MAXTHRD parameters (in the DRA Startup Table) as greater than one.