Client API: avoid possible deadlock with user application mutexes
Description
When a user application uses a mutex both in a S2OPC thread callback and its own threads, there are high chances that both threads get in deadlock, because both mutexes are not ordered.
Currently, S2OPC user callbacks are called with internal S2OPC mutexes locked, which may cause the deadlock.
Analysis
The S2OPC user callbacks shall be called after releasing internal mutex to avoid any possible deadlock.
Implementation
Avoid to keep the mutex locked for S2OPC user callbacks, see diff file attached for concerned callbacks.
Edited by Vincent Monfort