import
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#ifndef INCLUDED_OS_FAIRLOCK_H
|
||||
#define INCLUDED_OS_FAIRLOCK_H
|
||||
|
||||
#ifndef INCLUDED_OS_MUTEX_H
|
||||
#include <os_mutex.h>
|
||||
#endif /*INCLUDED_OS_MUTEX_H*/
|
||||
|
||||
typedef struct {
|
||||
os_mutex_t lock;
|
||||
}os_fairlock_t;
|
||||
|
||||
OS_STATIC_FORCE_INLINE
|
||||
void os_fairlock_init(os_fairlock_t* self){
|
||||
os_mutex_init(&self->lock);
|
||||
}
|
||||
|
||||
OS_STATIC_FORCE_INLINE
|
||||
os_err_t os_fairlock_trylock(os_fairlock_t* self){
|
||||
return os_mutex_trylock(&self->lock);
|
||||
}
|
||||
|
||||
OS_STATIC_FORCE_INLINE
|
||||
void os_fairlock_lock(os_fairlock_t* self){
|
||||
os_mutex_lock(&self->lock);
|
||||
}
|
||||
|
||||
OS_STATIC_FORCE_INLINE
|
||||
os_err_t os_fairlock_timed_lock(os_fairlock_t* self, os_tick_t ticks){
|
||||
return os_mutex_timed_lock(&self->lock, ticks);
|
||||
}
|
||||
|
||||
OS_STATIC_FORCE_INLINE
|
||||
void os_fairlock_unlock(os_fairlock_t* self){
|
||||
os_mutex_unlock_one(&self->lock);
|
||||
}
|
||||
|
||||
#endif /*INCLUDED_OS_FAIRLOCK_H*/
|
||||
Reference in New Issue
Block a user