lock a mutex - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Programming : OpenMaple : C Application Programming Interface : Parallel Programming : OpenMaple/C/MapleMutexLock

MapleMutexLock - lock a mutex

Calling Sequence

MapleMutexLock( kv, mutex );




kernel handle of type MKernelVector



a mutex identifier (ALGEB)



MapleMutexLock locks a mutex.  Only one thread can have a mutex locked at any one time.  If another thread is holding the lock, the current thread will block until it can obtain the lock.


To release the lock on a mutex, use the MapleMutexUnlock function.


A mutex can be created in external call using the MapleMutexCreate function.


The mutex identifier used by MapleMutexLock is compatible with the functions in the Threads[Mutex] package.  Thus mutexes created by Threads[Mutex][Create] can be passed into external call, and used by MapleMutexLock and MapleMutexUnlock.


#include "maplec.h"


ALGEB M_DECL ParallelFunction( MKernelVector kv, ALGEB mutex, ALGEB args )


    ALGEB ret;


    MapleMutexLock( kv, mutex );

    ret = CriticalSection( kv, args );

    MapleMutexUnlock( kv, mutex );


    return ret;


See Also

CustomWrapper, define_external, MapleMutexCreate, MapleMutexDestroy, MapleMutexUnlock, OpenMaple, OpenMaple/C/API, OpenMaple/C/Examples, OpenMaple/C/MutexDestroy, OpenMaple/C/MutexLock, OpenMaple/C/MutexUnlock, Threads[Mutex]

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam