summaryrefslogtreecommitdiffstats
path: root/pk/kernel/pk_semaphore_core.c
diff options
context:
space:
mode:
authorGlenn Miles <milesg@us.ibm.com>2015-03-23 13:13:04 -0500
committerGlenn R. Miles <milesg@us.ibm.com>2015-03-23 14:48:23 -0500
commite3ee55f1932041cefe3e2ebba49207aa9805e51e (patch)
tree1ed53a284799f8d491b5eecd123acbd438845d12 /pk/kernel/pk_semaphore_core.c
parentd2dd0140d007bce8214fcf022041c0dd5b522dc2 (diff)
downloadtalos-sbe-e3ee55f1932041cefe3e2ebba49207aa9805e51e.tar.gz
talos-sbe-e3ee55f1932041cefe3e2ebba49207aa9805e51e.zip
Add efficient time scaling support
Also removed automatic rescheduling of periodic timers Change-Id: I6427a8d8ed5ca4b75389c3610a16dba10783a8ae Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16537 Reviewed-by: Glenn R. Miles <milesg@us.ibm.com> Tested-by: Glenn R. Miles <milesg@us.ibm.com>
Diffstat (limited to 'pk/kernel/pk_semaphore_core.c')
-rw-r--r--pk/kernel/pk_semaphore_core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/pk/kernel/pk_semaphore_core.c b/pk/kernel/pk_semaphore_core.c
index 9079ff01..d5e6d30c 100644
--- a/pk/kernel/pk_semaphore_core.c
+++ b/pk/kernel/pk_semaphore_core.c
@@ -147,6 +147,8 @@ pk_semaphore_pend(PkSemaphore *semaphore,
PkThreadPriority priority;
PkThread *thread;
PkTimer *timer = 0;
+ PkInterval scaled_timeout = PK_INTERVAL_SCALE(timeout);
+
int rc = PK_OK;
if (PK_ERROR_CHECK_API) {
@@ -183,7 +185,7 @@ pk_semaphore_pend(PkSemaphore *semaphore,
if (timeout != PK_WAIT_FOREVER) {
timer = &(thread->timer);
- timer->timeout = pk_timebase_get() + timeout;
+ timer->timeout = pk_timebase_get() + scaled_timeout;
__pk_timer_schedule(timer);
thread->flags |= PK_THREAD_FLAG_TIMER_PEND;
}
OpenPOWER on IntegriCloud