Jacket routines are provided for routines that perform input and output operations. Examples of these operations are as follows:
· Open or create files, pipe symbols, and sockets
· Send and receive messages on sockets
· Read and write files and pipe symbols
Jacket routines are provided for Input/Output services so that DCE Threads can determine when to issue or block the service call based on the results of the select( ) system call. For these UNIX services, DCE Threads can determine whether issuing the system call causes the process to block. If the system call causes the process to block, DCE Threads blocks only the calling thread and schedules another thread to run in its place.
Periodically, DCE Threads checks whether the original calling thread can issue its operation without blocking the process. When the thread runs without blocking the process, that thread is placed back into the queue of ready threads and, at its turn, the thread resumes execution and issues the system call. Therefore, the jacket routines provide thread-synchronous I/O operations where otherwise the system calls block the entire process.