mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-16 04:46:27 +08:00
rtems-bsd-mutex: Fix resource count updates
This commit is contained in:
@@ -79,10 +79,10 @@ rtems_bsd_mutex_lock(struct lock_object *lock, rtems_bsd_mutex *m)
|
|||||||
|
|
||||||
owner = m->owner;
|
owner = m->owner;
|
||||||
executing = _Thread_Executing;
|
executing = _Thread_Executing;
|
||||||
++executing->resource_count;
|
|
||||||
|
|
||||||
if (__predict_true(owner == NULL)) {
|
if (__predict_true(owner == NULL)) {
|
||||||
m->owner = executing;
|
m->owner = executing;
|
||||||
|
++executing->resource_count;
|
||||||
|
|
||||||
_Thread_queue_Release(&m->queue, &lock_context);
|
_Thread_queue_Release(&m->queue, &lock_context);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -57,6 +57,7 @@ rtems_bsd_mutex_lock_more(struct lock_object *lock, rtems_bsd_mutex *m,
|
|||||||
/* Priority inheritance */
|
/* Priority inheritance */
|
||||||
_Thread_Raise_priority(owner, executing->current_priority);
|
_Thread_Raise_priority(owner, executing->current_priority);
|
||||||
|
|
||||||
|
++executing->resource_count;
|
||||||
_Thread_queue_Enqueue_critical(&m->queue, executing,
|
_Thread_queue_Enqueue_critical(&m->queue, executing,
|
||||||
STATES_WAITING_FOR_MUTEX, WATCHDOG_NO_TIMEOUT, 0,
|
STATES_WAITING_FOR_MUTEX, WATCHDOG_NO_TIMEOUT, 0,
|
||||||
lock_context);
|
lock_context);
|
||||||
|
Reference in New Issue
Block a user