public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: java/9254: java::lang::Object::wait(), threads-win32.cc returns wrong return codes
@ 2003-01-28 22:26 tromey
  0 siblings, 0 replies; 2+ messages in thread
From: tromey @ 2003-01-28 22:26 UTC (permalink / raw)
  To: erik.poupaert, gcc-bugs, gcc-prs, java-prs, nobody, tromey

Synopsis: java::lang::Object::wait(), threads-win32.cc returns wrong return codes

Responsible-Changed-From-To: unassigned->tromey
Responsible-Changed-By: tromey
Responsible-Changed-When: Tue Jan 28 22:26:56 2003
Responsible-Changed-Why:
    I'm handling the administrivia
State-Changed-From-To: open->closed
State-Changed-By: tromey
State-Changed-When: Tue Jan 28 22:26:56 2003
State-Changed-Why:
    I've checked in the fix.
    It will appear in 3.3

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9254


^ permalink raw reply	[flat|nested] 2+ messages in thread

* java/9254: java::lang::Object::wait(), threads-win32.cc returns wrong return codes
@ 2003-01-09 19:56 erik.poupaert
  0 siblings, 0 replies; 2+ messages in thread
From: erik.poupaert @ 2003-01-09 19:56 UTC (permalink / raw)
  To: gcc-gnats


>Number:         9254
>Category:       java
>Synopsis:       java::lang::Object::wait(), threads-win32.cc returns wrong return codes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 09 11:56:01 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     erik.poupaert@chello.be
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
While posix-threads.cc/_JvCondWait() will return (_JV_NOT_OWNER,_JV_INTERRUPTED, 0), which are exactly the return codes that java::lang::Object::wait() checks on,
win32-threads.cc/_JvCondWait(), will return (GetLastError(),ETIMEOUT, 0).

It may be the reason why java.lang.Object.wait() doesn't work properly on win32. In the test case attached, at line 20, mWorkerLock.wait(), will only wait one time. From there on, it won't wait any longer, when invoked.
>How-To-Repeat:
See example.
>Fix:
The return codes for win32 must be mapped:
(GetLastError(),ETIMEOUT, 0)
to the tuple: 
(_JV_NOT_OWNER,_JV_INTERRUPTED, 0)
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: java/*; name="TestThreading.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="TestThreading.java"

DQppbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsNCmltcG9ydCBqYXZhLmlvLkJ1ZmZl
cmVkUmVhZGVyOw0KaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247DQoNCnB1YmxpYyBjbGFzcyBU
ZXN0VGhyZWFkaW5nDQp7DQoJcHJpdmF0ZSAgZmluYWwgT2JqZWN0IG1Xb3JrZXJMb2NrID0gbmV3
IE9iamVjdCgpOw0KCXByaXZhdGUgdm9sYXRpbGUgVGhyZWFkICBtV29ya2VyVGhyZWFkID0gbnVs
bDsNCglwcm90ZWN0ZWQgYm9vbGVhbiBtV29ya2VyU3RvcHBlZD1mYWxzZTsNCglwcml2YXRlIGZp
bmFsIFJ1bm5hYmxlIG1Xb3JrZXJSdW5uYWJsZSA9IG5ldyBSdW5uYWJsZSgpIHsNCgkJcHVibGlj
IHZvaWQgcnVuKCkgew0KCQkJd2hpbGUgKCFtV29ya2VyU3RvcHBlZCkgew0KCQkJCXN5bmNocm9u
aXplZChtV29ya2VyTG9jaykgew0KCQkJCX0NCgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIndvcmtl
ciBleGVjdXRpbmcgcGFzcyAuLi4iKTsNCgkJCQlzeW5jaHJvbml6ZWQobVdvcmtlckxvY2spIHsN
CgkJCQkJdHJ5IHsNCgkJCQkJU3lzdGVtLm91dC5wcmludGxuKCJ3b3JrZXIgd2FpdGluZyIpOw0K
CQkJCQltV29ya2VyTG9jay53YWl0KCk7DQoJCQkJCVN5c3RlbS5vdXQucHJpbnRsbigid29ya2Vy
IHdhaXQgaXMgb3ZlciAiKTsNCgkJCQkJfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkg
ew0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJraWxsaW5nIHRo
cmVhZCIpOw0KCQkJbVdvcmtlclRocmVhZCA9IG51bGw7DQoJCX0NCgl9Ow0KDQoJcHVibGljIHN0
YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIElPRXhjZXB0aW9uDQoJew0KCQlU
ZXN0VGhyZWFkaW5nIHQ9bmV3IFRlc3RUaHJlYWRpbmcoKTsNCgl9DQoJDQoJcHVibGljIFRlc3RU
aHJlYWRpbmcoKSB0aHJvd3MgSU9FeGNlcHRpb24NCgl7DQoJCUJ1ZmZlcmVkUmVhZGVyIHJlYWRl
cj1uZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKFN5c3RlbS5pbikpOyAN
CgkJd2hpbGUoIW1Xb3JrZXJTdG9wcGVkKQ0KCQl7DQoJCQlTeXN0ZW0ub3V0LnByaW50KCJwcmVz
cyBlbnRlciAob3IgcyB0byBzdG9wKSIpOw0KCQkJaW50IGM9MDsNCgkJCXRyeQ0KCQkJew0KCQkJ
CWM9KHJlYWRlci5yZWFkTGluZSgpKS5jaGFyQXQoMCk7DQoJCQl9DQoJCQljYXRjaChFeGNlcHRp
b24gZSkge30NCgkJCVN5c3RlbS5vdXQucHJpbnQoIlxuIik7DQoJCQlpZigoY2hhciljPT0ncycp
DQoJCQl7DQoJCQkJU3lzdGVtLm91dC5wcmludGxuKCJzdG9wcGluZyB3b3JrZXIiKTsNCgkJCQlt
V29ya2VyU3RvcHBlZD10cnVlOw0KCQkJCXN5bmNocm9uaXplZChtV29ya2VyTG9jaykgeyBtV29y
a2VyTG9jay5ub3RpZnlBbGwoKTsgfQ0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXdvcmtlclVw
ZGF0ZSgpOw0KCQkJfQ0KCQl9DQoJfQ0KCQkNCglwcml2YXRlIHZvaWQgd29ya2VyVXBkYXRlKCkg
ew0KCQlzeW5jaHJvbml6ZWQobVdvcmtlckxvY2spIA0KCQl7DQoJCQltV29ya2VyU3RvcHBlZCA9
IGZhbHNlOw0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJ3b3JrZXIgdXBkYXRlIC0gbm90aWZ5IEFs
bCIpOw0KCQkJbVdvcmtlckxvY2subm90aWZ5QWxsKCk7DQoJCX0NCgkJaWYgKG1Xb3JrZXJUaHJl
YWQgPT0gbnVsbCkgew0KCQkJbVdvcmtlclRocmVhZCA9IG5ldyBUaHJlYWQobVdvcmtlclJ1bm5h
YmxlKTsNCgkJCVN5c3RlbS5vdXQucHJpbnRsbigid29ya2VyIHVwZGF0ZSAtIHRocmVhZCBzdGFy
dCIpOw0KCQkJbVdvcmtlclRocmVhZC5zdGFydCgpOw0KCQl9DQoJfQ0KfQ==


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-01-28 22:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-28 22:26 java/9254: java::lang::Object::wait(), threads-win32.cc returns wrong return codes tromey
  -- strict thread matches above, loose matches on Subject: below --
2003-01-09 19:56 erik.poupaert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).