This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Re: Is main() a normal thread ?
- From: Claudio Leonel <cls at xpnet dot com dot br>
- To: Savin Zlobec <savin at elatec dot si>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Mon, 29 Sep 2003 09:59:04 +0000
- Subject: Re: [ECOS] Re: Is main() a normal thread ?
- References: <3F781598.5060501@elatec.si>
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