Because the thread will exit the schedule loop, it has to pause first and then
run sched loop until the potential per thread local scheduler cache is empty
(see under).
-Petri
int done = 0;
while (1) {
odp_timeout_t tmo;
if (done)
buf = odp_schedule(&queue, ODP_SCHED_NO_WAIT);
else
buf = odp_schedule(&queue,
ODP_SCHED_WAIT);
if (buf == ODP_BUFFER_INVALID)
break;
tmo = odp_timeout_from_buffer(buf);
tick = odp_timeout_tick(tmo);
EXAMPLE_DBG(" [%i] timeout, tick %"PRIu64"\n",
thr, tick);
odp_buffer_free(buf);
num--;
if (num == 0) {
odp_schedule_pause();
done = 1;
continue;
}
tick += period;
odp_timer_absolute_tmo(test_timer, tick,
queue,
ODP_BUFFER_INVALID);
}
From: [email protected]
[mailto:[email protected]] On Behalf Of ext Bill Fischofer
Sent: Friday, December 19, 2014 10:38 PM
To: Mike Holmes
Cc: lng-odp-forward
Subject: Re: [lng-odp] [PATCH v2 2/3] example: odp_timer_test: remove use of
odp_schdule_one
Typo in the title (odp_schdule_one). Presumably Maxim can fix during merge?
On Fri, Dec 19, 2014 at 2:34 PM, Mike Holmes
<[email protected]<mailto:[email protected]>> wrote:
Signed-off-by: Mike Holmes
<[email protected]<mailto:[email protected]>>
---
example/timer/odp_timer_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/example/timer/odp_timer_test.c b/example/timer/odp_timer_test.c
index 0d6e31a..6d2609a 100644
--- a/example/timer/odp_timer_test.c
+++ b/example/timer/odp_timer_test.c
@@ -84,7 +84,7 @@ static void test_abs_timeouts(int thr, test_args_t *args)
while (1) {
odp_timeout_t tmo;
- buf = odp_schedule_one(&queue, ODP_SCHED_WAIT);
+ buf = odp_schedule(&queue, ODP_SCHED_WAIT);
tmo = odp_timeout_from_buffer(buf);
tick = odp_timeout_tick(tmo);
--
2.1.0
_______________________________________________
lng-odp mailing list
[email protected]<mailto:[email protected]>
http://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp