OpenTP1 Version 7 TP1/Client User's Guide TP1/Client/W, TP1/Client/P
2.9.3 Notes on using multi-threading
- To execute a CUP in a multi-thread environment, use a function whose name ends with _s.
- While a function of TP1/Client is being executed (before the function returns) in a thread, do not execute another function of TP1/Client in the same thread.
- In each thread, always issue the dc_clt_cltin_s function to acquire a descriptor called a client ID, and specify the acquired client ID in all the functions issued in the thread.
The client ID that a process or thread acquired by executing user authentication cannot be used in another process or thread.
- To execute multiple RPCs in a multi-thread environment concurrently, you must first issue the dc_clt_cltin_s function in each thread.
In a thread, when you need to specify a client ID in an argument of a function provided by TP1/Client, specify the client ID returned by the dc_clt_cltin_s function issued in the thread. The client ID acquired in a thread is valid in the thread only.
- To create a client environment definition for each thread, specify a different file name in the defpath argument of the dc_clt_cltin_s function for each thread.
If you want to use the facility for using a fixed reception port, a reception function of TCP/IP communication, or the facility for receiving one-way messages from the server, you must specify a different port number for each thread.
- If trace information for all threads is output to the same file, the CPU usage rate will increase, and the RPC throughput may degrade. Avoid this by using a different trace file for each process or thread.
All Rights Reserved. Copyright (C) 2006, 2009, Hitachi, Ltd.