[m-rev.] for review: hang in lowlevel parallel grade

Julien Fischer juliensf at cs.mu.OZ.AU
Wed Jun 28 19:28:08 AEST 2006


On Wed, 28 Jun 2006, Peter Wang wrote:

> On 2006-06-28, Julien Fischer <juliensf at cs.mu.OZ.AU> wrote:
> >
> > On Wed, 28 Jun 2006, Peter Wang wrote:
> >
> > >
> > > Estimated hours taken: 6
> > > Branches: main, release
> > >
> > > This patch fixes a bug with lowlevel parallel grades.  A program built in such
> > > a grade could hang when running with multiple threads.
> > >
> > > runtime/mercury_context.c:
> > > 	After scheduling a Mercury context, use MR_BROADCAST to wake up all
> > > 	idle threads instead of MR_SIGNAL, if the newly scheduled context might
> > > 	not be accepted for execution by any single woken thread.  The hang
> > > 	used to occur when a context was scheduled but the wrong idle thread
> > > 	was woken up to execute it (because the context is 'owned' by another
> > > 	thread) and promptly went back to idling.
> > >
> > > runtime/mercury_thread.h:
> > > 	Add MR_BROADCAST macros.
> > >
> >
> > Is there a test case for this?
>
> Here it is.

Ok, that looks fine.

Julien.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list