[En-Nut-Discussion] Thread priority
Michel Hendriks
michel at streamit.eu
Wed May 16 17:11:56 CEST 2007
Yes, I see what you are saying. That is why we sleep 100ms in that thread:
NutThreadSetPriority(1);
for (;;)
{
NutSleep(100);
WatchDogRestart();
}
Our watchdog is set to 2 seconds, so there should be enough time
even if a thread would use 1,89999 seconds before releasing the CPU.
The reason I want to give this watchdog thread the highest priority
is because I found that, if I am busy in another thread, that thread
will not give back the CPU if it uses a higher priority. Even when using
the same priority, NutOS will not give time to the watchdog thread.
So if I would have a thread doing this:
NutThreadSetPriority(1);
for (;;)
{
DoSomethingFor1.8seconds();
NutThreadYield();
}
I would get watchdog resets. If I lower the prio of the other thread,
the watchdog thread always gets its turn.
Greets,
Michel Hendriks
> -----Oorspronkelijk bericht-----
> Van: en-nut-discussion-bounces at egnite.de
> [mailto:en-nut-discussion-bounces at egnite.de] Namens Ole Reinhardt
> Verzonden: woensdag 16 mei 2007 11:34
> Aan: Ethernut User Chat (English)
> Onderwerp: Re: [En-Nut-Discussion] Thread priority
>
> Hi,
>
> > Maybe, but I want to check if my threads are still running.
> > The easiest way to do that is using a high prio thread :-)
>
> You might do so. But be aware that if your thread has the
> highest priority it will always run if you don't use NutSleep
> to explecitly wait some time. Of course you could also wait
> on events etc.
>
> In other words: Your watchdog threads _needs_ to give back
> the cpu and you may not do this by using NutThreadYield() as
> you would directly gain back cpu time.
>
> Normaly it should be fine to run the watchdog with lower
> expiration time and use a normal priorised thread.
>
> Best regards,
>
> Ole Reinhardt
>
>
> --
> kernel concepts GbR Tel: +49-271-771091-14
> Inh. Faerber & Kirchner Fax: +49-271-771091-19
> Sieghütter Hauptweg 48 Mobil: +49-177-7420433
> D-57072 Siegen UstID: DE 205 648 898
>
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>
>
More information about the En-Nut-Discussion
mailing list