mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-13 01:57:43 +08:00
rtems-bsd-mutex: Add SMP lock debug support
This commit is contained in:
parent
b1ec3c9398
commit
36db134f33
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014, 2016 embedded brains GmbH. All rights reserved.
|
* Copyright (c) 2014, 2017 embedded brains GmbH. All rights reserved.
|
||||||
*
|
*
|
||||||
* embedded brains GmbH
|
* embedded brains GmbH
|
||||||
* Dornierstr. 4
|
* Dornierstr. 4
|
||||||
@ -85,6 +85,9 @@ rtems_bsd_mutex_acquire_critical(rtems_bsd_mutex *m,
|
|||||||
|
|
||||||
_Thread_queue_Queue_acquire_critical(&m->queue.Queue,
|
_Thread_queue_Queue_acquire_critical(&m->queue.Queue,
|
||||||
&m->queue.Lock_stats, &queue_context->Lock_context.Lock_context);
|
&m->queue.Lock_stats, &queue_context->Lock_context.Lock_context);
|
||||||
|
#if defined(RTEMS_SMP) && defined(RTEMS_DEBUG)
|
||||||
|
m->queue.owner = _SMP_lock_Who_am_I();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
@ -92,6 +95,10 @@ rtems_bsd_mutex_release(rtems_bsd_mutex *m, ISR_Level isr_level,
|
|||||||
Thread_queue_Context *queue_context)
|
Thread_queue_Context *queue_context)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#if defined(RTEMS_SMP) && defined(RTEMS_DEBUG)
|
||||||
|
_Assert( _Thread_queue_Is_lock_owner( &m->queue ) );
|
||||||
|
m->queue.owner = SMP_LOCK_NO_OWNER;
|
||||||
|
#endif
|
||||||
_Thread_queue_Queue_release_critical(&m->queue.Queue,
|
_Thread_queue_Queue_release_critical(&m->queue.Queue,
|
||||||
&queue_context->Lock_context.Lock_context);
|
&queue_context->Lock_context.Lock_context);
|
||||||
_ISR_Local_enable(isr_level);
|
_ISR_Local_enable(isr_level);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user