diff options
author | Glenn Miles <milesg@us.ibm.com> | 2015-03-23 13:13:04 -0500 |
---|---|---|
committer | Glenn R. Miles <milesg@us.ibm.com> | 2015-03-23 14:48:23 -0500 |
commit | e3ee55f1932041cefe3e2ebba49207aa9805e51e (patch) | |
tree | 1ed53a284799f8d491b5eecd123acbd438845d12 /pk/kernel/pk_semaphore_core.c | |
parent | d2dd0140d007bce8214fcf022041c0dd5b522dc2 (diff) | |
download | talos-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.c | 4 |
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; } |