I know this is an old thread but could you please clarify this response:

"You'll need to protect calls to wolfSSL_read() and wolfSSL_write() on the same WOLFSSL object with a mutex or similar to avoid more than one thread trying to call it simultaneously."

Does that mean that I just need to protect against multiple calls to wolfSSL_read() and multiple calls to wolfSSL_write() and so can have a separate mutex for each or do I also need to prevent a call to wolfSSL_write() while another thread is in wolfSSL_read() and vice-versa?

I hope not or this would mean it is impossible to use a blocking receive interface at the socket transport layer in a multi-threaded environment, as while the receive is waiting for data, no-one would be able to send anything.

Kind Regards,
Simon Raybould,
Firmware Developer, Landis+Gyr, Switzerland.