On Fri, 2006-07-21 at 14:51 +0200, Daniel Simon wrote: > On Fri, 21 Jul 2006 14:12:47 +0200 > "ROSSIER Daniel" <[EMAIL PROTECTED]> wrote: > > > but it might be at the spin() level. > > I have observed that the behaviour of rt_timer_spin() does not fit with > the expected behaviour as described in the doxygened comment: its actual > awakening time do not increase when it is preempted. > > According to the code in timer.c (using 2.1.2) the wakening time seems > to be computed once for all at the beginning of the function call. > > Am I right? >
Yes. But nothing is said in the documentation about the determination of the end spinning time, so the doc is right; what it says is that your task is going to wait for a certain count of nanoseconds, as seen from its own POV, it does not say that only cycles spent in actual spinning wait on behalf of the caller should be accounted for. Fact is that the task will have waited for a certain amount of time before returning, what has occurred in the rest of the system during that period is irrelevant to the purpose of rt_task_spin(). I guess that your interpretation of the behaviour of your application has been wrong due to the non-cumulative aspect of rt_timer_spin(), i.e. a first spinning interrupted by a second one will exit immediately upon return if the initial end time has been reached, because of the second spin time. But in any case, this is an expected behaviour. > Daniel > -- Philippe. _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
