LM-X can be used with multithreaded applications.

By default, you can access the LM-X API from multiple threads simultaneously. However, this default behavior may not always be sufficient.  

For example, you might have a situation in which one of two threads that call LMX_Checkout() could fail. If you subsequently wish to print out the last error message with LMX_GetErrorMessage(), the results may have been updated by the second LMX_Checkout() call.  

To avoid such cases, you can use your own mutual exclusion to provide the necessary synchronization. 

In most cases, you can simultaneously call multiple functions with the same LM-X handle. If there is an error, LM-X will return LMX_API_NOT_REENTRANT.