Mbed TLS mbedtls_ssl_config (struct)

I hope this a simple question regarding mbedtls_ssl_config. So it seems this structure is meant to be shared/used for multiple questions. However, if I have multiple threads is it treated as a read only structure by all the library code, or does it use update some state at times? Similar thing regarding the mbedtls_x509_crt struct and mbedtls_ctr_drbg_context which also seem to be added to the config when I setup the config.

I was hoping that once set I don’t have to worry about any mutexs/locks being used by the library under the hood. Mainly, that once the configuration is set in the main thread it state is never updated again. What made me curious about this is the fact the RNG seems to be part of the configuration and a CPRNG will generally have state that changes. Moreover, I can’t really find a clear answer looking at the docs.