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]

Re: cyg_thread_resume


Paleologos Spanos wrote:
> 
>  As I mentioned the cyg_thread_kill and cyg_thread_resume are called by
> the scheduler and not by a thread.
>  Actually I want my scheduler  to stop a desired thread and restart it
> from the beginning(resume it at a desired point in time and start
> execution from the starting point of the thread's code.)
> 
>                            Thank you.
> On Thu, 18 Jan 2001, Jonathan Larmour wrote:
> 
> > Paleologos Spanos wrote:
> > >
> > >  Hi,I have a problem using the cyg_thread_resume function.
> > > I have configured the scheduler to have the bitmap scheduler.I tried to
> > > modify the scheduler so as to test if it is possible to resume an exited
> > > thread.However,the thread's state didn't change.
> > >  What I did was to add after the if loop in line :161 in the sched.cxx
> > > file the below code :
> > > Cyg_Thread  *current = Cyg_Scheduler::get_current_thread();
> > >      cyg_thread_kill ((cyg_handle_t) current);
> > >        cyg_thread_resume((cyg_handle_t) current);


Okay, some more detail: if you call cyg_thread_kill with the current
thread, then that will call cyg_thread_exit for the current thread.
cyg_thread_exit does not return. Look at the code for Cyg_Thread::exit() in
kernel/VERSION/src/common/thread.cxx

The scheduler is not a separate entity, the scheduler functions are called
in a thread context.

For what you want to achieve (stop and resume a thread from the beginning),
you want to call cyg_thread_kill() and cyg_thread_resume() from a
_different_ thread, not from the "scheduler" which will actually be the
same thread.

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Un cheval, pas du glue. Pas du cheval, beaucoup du glue. || Opinions==mine

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