This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Re: mutex and mailbox query
- From: Savin Zlobec <savin at torina dot fe dot uni-lj dot si>
- To: Andrew Lunn <andrew at lunn dot ch>
- Cc: <hans dot doran at ibhdoran dot com>, <ecos-discuss at sources dot redhat dot com>
- Date: Sat, 20 Sep 2003 23:15:10 +0200 (CEST)
- Subject: Re: [ECOS] Re: mutex and mailbox query
On Sat, 20 Sep 2003, Andrew Lunn wrote:
> On Sat, Sep 20, 2003 at 09:18:18PM +0200, Savin Zlobec wrote:
> >
> > Hans Dermot Doran wrote:
> >
> > > Hello all,
> > >
> > > is it possible for a thread to destroy a mutex it has previously locked ?
> > > or does it have to be unlocked first ?
> > >
> > >As part of a thread-shutdown routine, I want to destroy a mailbox whose
> > >messages are in shared memory, therefore I mutex the messages, destroy the
> > >mailbox, destroy the shared memory and release threads waiting on the mutex
> > >and then destroy it ... all in one go ...
> >
> > If you destroy the mutex, it should not be locked and have no threads
> > waiting on it. You should do your routine with scheduler locked and
> > unlock the mutex before you destroy it.
>
> Problem is, you have no way of knowing if any threads are waiting on
> the mbox or the mutex. There are no API calls to tell you this.
Yes, the following scenario limits the usage of mbox to cyg_mbox_tryget,
or maybe the cyg_thread_release could be used.
savin
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss