summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-06-23 08:58:58 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-06-23 08:58:58 +0200
commitb22ad9f4c57587e8ab4a22438652e10ad0d2345d (patch)
treed659a5e771b802ec5839ca766bfa0202dcfc084b
parentUpdate libbsd.txt with Xilinx Zynq TXCSUM and RXCSUM controls. (diff)
downloadrtems-libbsd-b22ad9f4c57587e8ab4a22438652e10ad0d2345d.tar.bz2
rtems-bsd-mutex: Fix resource count updates
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-muteximpl.h2
-rw-r--r--rtemsbsd/rtems/rtems-bsd-muteximpl.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/rtemsbsd/include/machine/rtems-bsd-muteximpl.h b/rtemsbsd/include/machine/rtems-bsd-muteximpl.h
index 45f501c6..0bb23f2e 100644
--- a/rtemsbsd/include/machine/rtems-bsd-muteximpl.h
+++ b/rtemsbsd/include/machine/rtems-bsd-muteximpl.h
@@ -79,10 +79,10 @@ rtems_bsd_mutex_lock(struct lock_object *lock, rtems_bsd_mutex *m)
owner = m->owner;
executing = _Thread_Executing;
- ++executing->resource_count;
if (__predict_true(owner == NULL)) {
m->owner = executing;
+ ++executing->resource_count;
_Thread_queue_Release(&m->queue, &lock_context);
} else {
diff --git a/rtemsbsd/rtems/rtems-bsd-muteximpl.c b/rtemsbsd/rtems/rtems-bsd-muteximpl.c
index c68bd461..d7776f5a 100644
--- a/rtemsbsd/rtems/rtems-bsd-muteximpl.c
+++ b/rtemsbsd/rtems/rtems-bsd-muteximpl.c
@@ -57,6 +57,7 @@ rtems_bsd_mutex_lock_more(struct lock_object *lock, rtems_bsd_mutex *m,
/* Priority inheritance */
_Thread_Raise_priority(owner, executing->current_priority);
+ ++executing->resource_count;
_Thread_queue_Enqueue_critical(&m->queue, executing,
STATES_WAITING_FOR_MUTEX, WATCHDOG_NO_TIMEOUT, 0,
lock_context);