In IIIMCF library, any objects are thread-safe in the sense that multiple threads can simultaneously access distinct objects. The user is responsible for mutual exclusion among multiple threads while they are accessing the same object.
Note that simultaneously accessing distinct contexts are safe even though they belong to the same handle (i.e., these contexts are created from the same handle). Therefore, it is safe that each thread has its own contexts created by the single handle that is shared throughout the process.