mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-28 05:53:35 +08:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user