Shared data accesses can be serialized with DaCS by using a mutual exclusion primitive (mutex) to protect critical sections. A mutex can be hosted on any DE memory space and can be local or remote relative to the process calling these services.
The significant features of a mutex are:
The services which process a mutex fall into two categories:
mutex management services, for managing the mutex shared resource, which include dacs_mutex_init(), dacs_mutex_share(), dacs_mutex_accept(), dacs_mutex_release() and dacs_mutex_destroy(), and
mutex locking services, for locking and unlocking a mutex, which include dacs_mutex_lock(), dacs_mutex_unlock() and dacs_mutex_try_lock().