Can I obtain a mutex recursively (on MMLite) ?
No. Mutexes are standard (POSIX) and non-recursive objects. If you try to do so you will deadlock immediately, your thread will lock and never return from the Mutex_Lock call. Recursive locks have been avoided by in the standard because they are well known to be error-prone. It is possible to implement any other synchronization primitive using Mutexes and Condition variables so you can add your favorite, see sample.