This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: thread creation
- From: Gary Thomas <gary at mlbassoc dot com>
- To: Aravind B <arvindb at cranessoftware dot com>
- Cc: ecos <ecos-discuss at sources dot redhat dot com>
- Date: Tue, 14 Sep 2004 06:27:32 -0600
- Subject: Re: [ECOS] thread creation
- Organization: MLB Associates
- References: <1095164221.1691.6.camel@ambica>
On Tue, 2004-09-14 at 06:17, Aravind B wrote:
> hi all,
> i have written small application which has 2 threads.
> small part of it is as follows:
> void cyg_user_start(void)
> {
> printf("entering two threads cyg_user_start() function\n");
> cyg_thread_create(4,simple_program,(cyg_addrword_t)0,
> "Thread A",(void*) stack[0],4096,
> &simple_threadA,&thread_s[0]);
> cyg_thread_create(5,simple_program1,(cyg_addrword_t)1,
> "Thread B",(void*) stack[1],4096,
> &simple_threadB,&thread_s[1]);
> cyg_thread_resume(simple_threadA);
> cyg_thread_resume(simple_threadB);
> }
> when the control comes for execution of second thread the system hangs.
> on debug i found that the control is in thread.cxx.
> why is this happening and how to overcome this.
Given the terseness of your description, it's hard to tell exactly
what the problem is. First guess is that stack[0] and stack[1]
don't contain actual stack pointers.
Have you run this code with asserts (kernel debugging) enabled?
--
Gary Thomas <gary@mlbassoc.com>
MLB Associates
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss