CrowdSight instances can run in different threads, however the SDK is not fully thread safe.
- Construction and destruction of CrowdSight objects need to be synchronized (no constructor or destructor can run in parallel)
- process() calls from different CrowdSight threads should be synchronized with the construction and destruction of CrowdSight objects (a process() call cannot run in parallel with another constructor/destructor call).
- Multiple process() calls can run in parallel.
- We noticed that there are peculiar properties of the TCP/IP protocol stack in Windows causing issues when performing multiple authenticate() calls in parallel. It is therefore advised to synchronize different authenticate() calls.