This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: thread creation


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]