[Core] Use a mutex guard for split shared memory (#16647)
parent
176ab14649
commit
7712a286dc
@ -0,0 +1,26 @@ |
||||
// Copyright 2022 Stefan Kerkmann
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "synchronization_util.h" |
||||
#include "ch.h" |
||||
|
||||
#if defined(SPLIT_KEYBOARD) |
||||
static MUTEX_DECL(SPLIT_SHARED_MEMORY_MUTEX); |
||||
|
||||
/**
|
||||
* @brief Acquire exclusive access to the split keyboard shared memory, by |
||||
* locking the mutex guarding it. If the mutex is already held, the calling |
||||
* thread will be suspended until the mutex currently owning thread releases the |
||||
* mutex again. |
||||
*/ |
||||
void split_shared_memory_lock(void) { |
||||
chMtxLock(&SPLIT_SHARED_MEMORY_MUTEX); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Release the split shared memory mutex that has been acquired before. |
||||
*/ |
||||
void split_shared_memory_unlock(void) { |
||||
chMtxUnlock(&SPLIT_SHARED_MEMORY_MUTEX); |
||||
} |
||||
#endif |
@ -0,0 +1,14 @@ |
||||
// Copyright 2022 Stefan Kerkmann
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once |
||||
|
||||
#if defined(PLATFORM_SUPPORTS_SYNCHRONIZATION) |
||||
# if defined(SPLIT_KEYBOARD) |
||||
void split_shared_memory_lock(void); |
||||
void split_shared_memory_unlock(void); |
||||
# endif |
||||
#else |
||||
inline void split_shared_memory_lock(void){}; |
||||
inline void split_shared_memory_unlock(void){}; |
||||
#endif |
Loading…
Reference in new issue