[ECOS] kernel API calls allowed from cyg_user_start()?
Grant Edwards
grante@visi.com
Wed Aug 15 14:39:00 GMT 2001
On Wed, Aug 15, 2001 at 10:34:29PM +0100, Jonathan Larmour wrote:
> Gary Thomas wrote:
>
> > That's what the warning is for. You can't expect to do
> > anything which might cause the thread to block, because there
> > is no scheduler running, thus no way to get it restarted.
> >
> > The safest thing to do is only use this routine to set up
> > initial threads and then start the kernel. Other things like
> > creating and initializing kernel objects (mutexes, etc) are
> > also safe, but not using them [in general].
>
> Actually we do take some care to allow people to do things like
> lock/unlock mutexes, as quite often you can't help "shared"
> code needing to do that.
Yup, I remember having to deal with that sort of problem in a
kernel I wrote years and years ago. It's the sort of thing you
never think of until you've tripped over it once.
> Of course every lock must match an unlock. The kernel is
> deliberately set up such that it thinks the current thread is
> the idle thread in order to do that
That's a clever solution. Wish I'd thought of it.
> (even though it's on a different stack of course) and that the
> scheduler is locked.
--
Grant Edwards
grante@visi.com
More information about the Ecos-discuss
mailing list