This is the mail archive of the mauve-discuss@sources.redhat.com mailing list for the Mauve 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]

Re: New java.lang.Thread tests


>>>>> "Mark" == Mark Wielaard <mark@klomp.org> writes:

Mark> I didn't need it for the join() but I needed it since I wanted
Mark> to notify() the Thread object. The join() just happened to be
Mark> included in the synchronized block by accident.

I debugged gij running this test.  It does definitely hang.

>From JLS 2nd Ed, 17.14:

    The notify method should be called for an object only when the
    current thread has already locked the object's lock.  If the wait
    set for the object is not empty, then some arbitrarily chosen
    thread is removed from the wait set and re-enabled for thread
    scheduling.  (Of course, that thread will not be able to proceed
    until the current thread relinquishes the object's lock.)

See the parenthetical statement.  `notify' doesn't unlock the object
when it performs its task.  So I think that we are *required* to hang
for this program, and that instead you've found a kaffe bug.  Do you
agree?

Tom


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