why must POSIX_Init() call exit() rather than use a "return" statement?
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed May 8 05:04:13 UTC 2019
On 07/05/2019 16:53, Morgan, Keith S wrote:
> On Monday, May 6, 2019 11:10 PM Sebastian Huber<sebastian.huber at embedded-brains.de> wrote:
>
>> Calling exit() and returning from a POSIX thread are two totally different things.
>> If you call exit(), then you terminate the system. If you return from a POSIX
>> thread, then this thread exits. The scheduler just picks up the next highest
>> priority ready thread. This could be the idle thread.
> Ok. This makes sense. I was missing the detail about the idle thread.
>
> However, it seems that the behavior is different between the classic API and the POSIX API. It seems that, in the classic API, terminating a task with a return statement also terminates the system.
Yes, a function return from a Classic API task results in a fatal error.
You must use rtems_task_delete() or rtems_task_exit() to terminate a
Classic API task.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the users
mailing list