c/thread/mtx lock

Blocks the current thread until the mutex pointed to by is locked.

The behavior is undefined if the current thread has already locked the mutex and the mutex is not recursive.

Prior calls to mtx_unlock on the same mutex synchronize-with this operation, and all lock/unlock operations on any given mutex form a single total order (similar to the modification order of an atomic)

Return value
thrd_success if successful, thrd_error otherwise.