[ECOS] Re: Is main() a normal thread ?
Claudio Leonel
cls@xpnet.com.br
Mon Sep 29 12:58:00 GMT 2003
Hi,
Savin Zlobec wrote:
> Claudio Leonel wrote:
>
>> Hi all,
>>
>> I thought main() was a normal thread but if I ran the
>> following application step by step in gdb there is no
>> return from the function cyg_thread_delay(). Apparently
>> it hangs in the call to cyg_thread_delay().
>>
>
> Check the CYGSEM_LIBC_STARTUP_MAIN_THREAD option -
> it controls how main() is invoked (from an eCos thread or not).
It is enabled: main() will be invoked as an eCos thread
with 8192 bytes of stack and priority 10.
If I interrupt the application in gdb and execute 'info threads'
main() appears in the thread list.
The most strange thing is that, I if precede 'cyg_thread_delay(100)'
with a diag_printf("..."), cyg_thread_delay() works and returns
after 100 ticks:
---------------------------------------------------------------
int main(void) {
while (1) {
diag_printf("...\n"); // Works if I insert this line !
cyg_thread_delay(100);
}
}
---------------------------------------------------------------
Regards,
Claudio L. Salvadori
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss
mailing list