Locking Primitives

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().