Posix: fixed time scaling for work queues

In work queues, delay is in ticks. Needed to check elapsed time
in ticks not in milliseconds.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This commit is contained in:
Mark Charlebois
2015-04-27 13:17:28 -07:00
parent 7390f50b67
commit 3c957e57e7
3 changed files with 25 additions and 12 deletions
@@ -62,14 +62,25 @@ void WQueueTest::lp_worker_cb(void *p)
void WQueueTest::do_lp_work()
{
static int iter = 0;
printf("done lp work\n");
_lpwork_done = true;
if (iter > 5)
_lpwork_done = true;
++iter;
work_queue(LPWORK, &_lpwork, (worker_t)&lp_worker_cb, this, 1000);
}
void WQueueTest::do_hp_work()
{
static int iter = 0;
printf("done hp work\n");
_hpwork_done = true;
if (iter > 5)
_hpwork_done = true;
++iter;
// requeue
work_queue(HPWORK, &_hpwork, (worker_t)&hp_worker_cb, this, 1000);
}
int WQueueTest::main()
@@ -77,19 +88,17 @@ int WQueueTest::main()
appState.setRunning(true);
//Put work on HP work queue
work_queue(HPWORK, &_hpwork, (worker_t)&hp_worker_cb, this, 1);
work_queue(HPWORK, &_hpwork, (worker_t)&hp_worker_cb, this, 1000);
//Put work on LP work queue
work_queue(LPWORK, &_lpwork, (worker_t)&lp_worker_cb, this, 1);
work_queue(LPWORK, &_lpwork, (worker_t)&lp_worker_cb, this, 1000);
// Wait for work to finsh
while (!appState.exitRequested() && !(_hpwork_done && _lpwork_done)) {
printf(" Sleeping...\n");
printf(" Sleeping for 2 sec...\n");
sleep(2);
printf(" Waiting on work...\n");
}
return 0;