[ctime] fixup of data racing (#8187)

Signed-off-by: Shell <smokewood@qq.com>
This commit is contained in:
Shell
2023-10-26 13:56:27 +08:00
committed by GitHub
parent 01672f8627
commit eafb04e011
3 changed files with 27 additions and 16 deletions

View File

@@ -544,8 +544,8 @@ rt_thread_t rt_thread_defunct_dequeue(void);
/*
* spinlock
*/
#ifdef RT_USING_SMP
struct rt_spinlock;
#ifdef RT_USING_SMP
void rt_spin_lock_init(struct rt_spinlock *lock);
void rt_spin_lock(struct rt_spinlock *lock);
@@ -553,11 +553,11 @@ void rt_spin_unlock(struct rt_spinlock *lock);
rt_base_t rt_spin_lock_irqsave(struct rt_spinlock *lock);
void rt_spin_unlock_irqrestore(struct rt_spinlock *lock, rt_base_t level);
#else
#define rt_spin_lock_init(lock) { RT_UNUSED(lock); }
#define rt_spin_lock(lock) { RT_UNUSED(lock); }
#define rt_spin_unlock(lock) { RT_UNUSED(lock); }
#define rt_spin_lock_irqsave(lock) ({ RT_UNUSED(lock); rt_hw_interrupt_disable(); })
#define rt_spin_unlock_irqrestore(lock, level) { RT_UNUSED(lock); rt_hw_interrupt_enable(level); }
#define rt_spin_lock_init(lock) do {RT_UNUSED(lock);} while (0)
#define rt_spin_lock(lock) do {RT_UNUSED(lock);} while (0)
#define rt_spin_unlock(lock) do {RT_UNUSED(lock);} while (0)
rt_inline rt_base_t rt_spin_lock_irqsave(struct rt_spinlock *lock) {RT_UNUSED(lock);return rt_hw_interrupt_disable();}
#define rt_spin_unlock_irqrestore(lock, level) do {RT_UNUSED(lock); rt_hw_interrupt_enable(level);} while (0)
#endif /* RT_USING_SMP */
/**@}*/