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]

problem in thread creation



> Thanks for ur kind reply
> After debugging i found that problem is in following code fragment in
> file thread.cxx:
> 
>               Cyg_Thread::add_to_list( void )
> -     127     {
>       128         // Add thread to housekeeping list
>       129         Cyg_Scheduler::lock();
>       130     
> -     131         if( thread_list == 0 )
>       132             list_next = this;
>       133         else {prev != thread_list
>       134             Cyg_Thread *prev = thread_list;
> -     135             do {
> -     136                 if ( this == prev )
>       137                     break; // found it already!
> -     138                 prev = prev->list_next;
> -     139             } while ( prev != thread_list );
> -     140             if ( this != prev ) {
>       141                 // insert it in the list:
> -     142                 list_next = thread_list->list_next;
> -     143                 thread_list->list_next = this;
>       144             }
>       145         }
> 
> the control is in the while loop forever as prev == thread_list ( line
> 139 )ie prev has become NULL.

>Sounds like your stack is too small and you are overwriting the thread
>structures.
> Andrew
But my stack size is 4096 bytes.

Aravind B



-- 
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]