Although I used gsoap in only one thread, I found this in the documentation for 2.8.1
From gSoap documentation found here
The run-time context can be reused as many times as needed for remote calls on the client side, without having to re-initialize it. For each new thread, a new context is required to guarantee exclusive access to the context of the runtime environment by threads. Also, the use of any client calls as part of the active service method requires a new context.
source share