This is the mail archive of the
java-prs@sourceware.cygnus.com
mailing list for the Java project.
libgcj/117: _Jv_PthreadCheckMonitor test is not portable.
- To: java-gnats at sourceware dot cygnus dot com
- Subject: libgcj/117: _Jv_PthreadCheckMonitor test is not portable.
- From: charles dot gauthier at iit dot nrc dot ca
- Date: 8 Dec 1999 22:44:37 -0000
- Reply-To: charles dot gauthier at iit dot nrc dot ca
- Resent-Cc: java-prs at sourceware dot cygnus dot com, green at cygnus dot com
- Resent-Reply-To: java-gnats@sourceware.cygnus.com, charles.gauthier@iit.nrc.ca
>Number: 117
>Category: libgcj
>Synopsis: _Jv_PthreadCheckMonitor test is not portable.
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: tromey
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Dec 08 14:50:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator: charles.gauthier@iit.nrc.ca
>Release: unknown-1.0
>Organization:
>Environment:
RTEMS, possibly Solaris
>Description:
On systems that do not support recursive mutexes,
pthread_mutex_trylock should not be expected to return 0 if
the caller already has locked the mutex. Unfortunately, it
may not return EDEADLK either.
>How-To-Repeat:
Startup of any application fails under RTEMS
with a java.lang.IllegalMonitorStateException exception when
calling _Jv_PrepareCompiledClass with the class that contains
the main method. Possibly the same under Solaris.
>Fix:
Partial fix is to check for a return value of EDEADLK and
take it to mean that the caller already has locked the
mutex. Just return 0 in that case.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="pthread_mutex_trylock_problem"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pthread_mutex_trylock_problem"
RnJvbSAtIFdlZCBEZWMgIDggMjI6NDI6NDUgMTk5OQpYLU1vemlsbGEtU3RhdHVzOiAwMDAxClgt
TW96aWxsYS1TdGF0dXMyOiAwMDAwMDAwMApNZXNzYWdlLUlEOiA8Mzg0RURBQTguOTZERTNGNDFA
aWl0Lm5yYy5jYT4KRGF0ZTogV2VkLCAwOCBEZWMgMTk5OSAyMjoyNDo0MCArMDAwMApGcm9tOiBD
aGFybGVzLUFudG9pbmUgR2F1dGhpZXIgPGNoYXJsZXMuZ2F1dGhpZXJAaWl0Lm5yYy5jYT4KT3Jn
YW5pemF0aW9uOiBTRUcvSUlUL05SQwpYLU1haWxlcjogTW96aWxsYSA0LjYxIFtlbl0gKFgxMTsg
VTsgTGludXggMi4yLjUtMTUgaTY4NikKWC1BY2NlcHQtTGFuZ3VhZ2U6IGZyLUNBLCBlbgpNSU1F
LVZlcnNpb246IDEuMApUbzogSm9lcmcgQnJ1bnNtYW5uIDxqb2VyZy5icnVuc21hbm5ARmVyblVu
aS1IYWdlbi5kZT4sCiAJamF2YS1kaXNjdXNzQHNvdXJjZXdhcmUuY3lnbnVzLmNvbQpTdWJqZWN0
OiBSZTogW1FdIGNhbid0IGJ1aWxkIGxpYmdjaiBvbiBTb2xhcmlzIDIuNgpSZWZlcmVuY2VzOiA8
Mzg0N0U2MDIuNEIwNEBmZXJudW5pLWhhZ2VuLmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47
IGNoYXJzZXQ9aXNvLTg4NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpKb2Vy
ZyBCcnVuc21hbm4gd3JvdGU6Cj4gCj4gTGluY29sbiBTcGl0ZXJpIHdyb3RlOgo+IAo+ID4gSSBh
bSBjdXJpb3VzLCBkaWQgeW91IGVuYWJsZSB0aHJlYWRzLiBEbyB0aHJlYWRlZCBhcHBsaWNhdGlv
bnMgd29yayBvbiBTb2xhcmlzPwo+ID4gVGhleSB1c2UgdG8gYnV0IHdoZW4gSSB0cmllZCBjb21w
aWxpbmcgZnJvbSBzbmFwc2hvdHMgbGFzdCB3ZWVrIHRoZXkgZGlkIG5vdC4gSXMKPiA+IHRoaXMg
YSBrbm93biBpc3N1ZT8gVGhlcmUgYXJlIG5vIGNsZWFyIHJlZmVyZW5jZXMgYWJvdXQgdGhpcyBv
biB0aGUgbGlzdAo+ID4gYXJjaGl2ZXMuCj4gCj4gSWYgdGhpcyBpcyBvZiBpbnRlcmVzdCBmb3Ig
eW91OiBmb3IgbWUgdGhlIGxhc3QgdmVyc2lvbiBvZiBlZ2NzCj4ga25vd24gdG8gd29yayBvbiBz
cGFyYy9zb2xhcmlzIGlzIGVnY3MtMTk5OTExMTA7IGFsdGhvdWdoCj4gdGhyZWFkZWQgYXBwbGlj
YXRpb25zIGRvbid0IHdvcmsuIFNlZToKPiAKPiAgIGh0dHA6Ly9zb3VyY2V3YXJlLmN5Z251cy5j
b20vbWwvamF2YS1wcnMvMTk5OS1xNC9tc2cwMDE0OS5odG1sCj4gCj4gSSBhcHBsaWVkIHRoZXNl
IHBhdGNoZXMKPiAKPiAgIGh0dHA6Ly9zb3VyY2V3YXJlLmN5Z251cy5jb20vbWwvamF2YS1wYXRj
aGVzLzE5OTktcTQvbXNnMDAwNjUuaHRtbAo+IAo+IGFuZCBhY2hpZXZlZCBhIGRpZmZlcmVudCBi
ZWhhdmlvdXIuIEkgbm93IGdldAo+IAo+IGphdmEubGFuZy5JbGxlZ2FsTW9uaXRvclN0YXRlRXhj
ZXB0aW9uOiBjdXJyZW50IHRocmVhZCBub3Qgb3duZXIKPiAKPiBCVFc6IGVnY3MtMTk5OTExMjIg
ZG9lc24ndCBjb21waWxlIGxpYmdjaiAoZ2NqIGhhbmdzIGR1cmluZwo+IGNvbXBpbGF0aW9uIG9m
IGEgbGliZ2NqIGphdmEgZmlsZSkgYW5kIGVnY3MtMTk5OTEyMDEgZG9lc24ndAo+IGNvbXBpbGUg
YXQgYWxsLgo+IAo+IEr2cmcKCkkgYW0gY3VycmVudGx5IHRyeWluZyB0byBwb3J0IHRoZSBsYXRl
c3QgbGliZ2NqIHNuYXBzaG90IHRvIFJURU1TLiBJIHJhbgppbnRvIHRoZSBqYXZhLmxhbmcuSWxs
ZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbjogY3VycmVudCB0aHJlYWQgbm90Cm93bmVyIHByb2Js
ZW0uIFRoZSBleGNlcHRpb24gd2FzIHRocm93biB3aGVuIHRoZSBKYXZhIHJ1bnRpbWUgdHJpZWQg
dG8KaW5pdGlhbGl6ZSB0aGUgY2xhc3MgdGhhdCBjb250YWlucyB0aGUgbWFpbiBtZXRob2QuIFRo
ZSBwcm9ibGVtIGlzIHRoZQpyZXR1cm4gdmFsdWUgZnJvbSBwdGhyZWFkX211dGV4X3RyeWxvY2so
KSBjYWxsZWQgZnJvbQpfSnZfUHRocmVhZENoZWNrTW9uaXRvciBpbiBsaWJqYXZhL2luY2x1ZGUv
cG9zaXgtdGhyZWFkcy5oLiBTb2xhcmlzIGlzCmRvY3VtZW50ZWQgaW4gcG9zaXgtdGhyZWFkLmgg
YXMgbm90IGhhdmluZyByZWN1cnNpdmUgbXV0ZXhlcyBzbwpwdGhyZWFkX211dGV4X3RyeWxvY2sg
d2lsbCBhbG1vc3QgY2VydGFpbmx5IG5vdCByZXR1cm4gMCBvbiB0aGUgZmlyc3QKY2FsbC4gSG9w
ZWZ1bGx5LCBpdCB3aWxsIHJldHVybiBFREVBRExLLCBpbiB3aGljaCBjYXNlIG15IHBhdGNoIGJl
bG93CnNob3VsZCBoZWxwLgoKLS0tIHBvc2l4LXRocmVhZHMuaAkxOTk5LzEyLzAyIDIwOjA5OjU1
CTEuMS4xLjIKKysrIHBvc2l4LXRocmVhZHMuaAkxOTk5LzEyLzA4IDE4OjA3OjE1CTEuMgpAQCAt
OTUsNiArOTUsNyBAQAogfQoKICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGVycm5vLmg+
CgogLy8gVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQgb25seSBieSB0aGUgcHRo
cmVhZHMgdGhyZWFkCiAvLyBpbXBsZW1lbnRhdGlvbi4gIFRoaXMgaXMgc2xvdywgYnV0IHRoYXQn
cyB0b28gYmFkIC0tIHdlIG5lZWQgdG8gZG8KQEAgLTEwNCw5ICsxMDUsMzQgQEAKIF9Kdl9QdGhy
ZWFkQ2hlY2tNb25pdG9yIChfSnZfTXV0ZXhfdCAqbXUpCiB7CiAgIHB0aHJlYWRfbXV0ZXhfdCAq
cG11ID0gX0p2X1B0aHJlYWRHZXRNdXRleCAobXUpOwotICAvLyBTZWUgaWYgdGhlIG11dGV4IGlz
IGxvY2tlZCBieSB0aGlzIHRocmVhZC4KLSAgaWYgKHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayAocG11
KSkKKyAgaW50IHN0YXR1czsKCisgIC8vIFNlZSBpZiB0aGUgbXV0ZXggaXMgbG9ja2VkIGJ5IHRo
ZSBjYWxsaW5nIHRocmVhZC4KKyAgLy8gVGhpcyBpcyByZWFsbHkgbWVzc3kuIEFjY29yZGluZyB0
byBQT1NJWCAxMDAzLjEtMTk5NiwgYSBjYWxsIHRvCisgIC8vIHB0aHJlYWRfbXV0ZXhfdHJ5bG9j
ayBzaG91bGQgcmV0dXJuIEVCVVNZIGlmIHRoZSBtdXRleCBpcyBhbHJlYWR5CisgIC8vIGxvY2tl
ZCBieSBhbnkgdGhyZWFkLCBpbmNsdWRpbmcgdGhlIGNhbGxpbmcgdGhyZWFkLiBZZXQgRGF2aWQg
Ui4KKyAgLy8gQnV0ZW5ob2YsICJQcm9ncmFtbWluZyB3aXRoIFBPU0lYIFRocmVhZHMiLCBBZGRp
c29uIFdlc2xleSwgMTk5NywKKyAgLy8gY2xhaW1zIG9uIHBhZ2UgMzE4IHRoYXQgUE9TSVggMTAw
My4xYy0xOTk1IHJlcXVpcmVzIHRoYXQKKyAgLy8gcHRocmVhZF9tdXRleF90cnlsb2NrIHJldHVy
biBFREVBRExLIGlmIHRoZSBjYWxsaW5nIHRocmVhZCBhbHJlYWR5CisgIC8vIG93bnMgdGhlIGxv
Y2sgb24gdGhlIG11dGV4LiBTb21lIGltcGxlbWVudGF0aW9ucyBkbyB0aGlzLiBSVEVNUyBpcwor
ICAvLyBvbmUgb2YgdGhlbS4gV2Ugd2lsbCBhc3N1bWUgdGhhdCBwdGhyZWFkX211dGV4X3RyeWxv
Y2sgcmV0dXJucyAwLAorICAvLyBpbiB3aGljaCBjYXNlIHdlIGVpdGhlciBhY3F1aXJlZCB0aGUg
bXV0ZXggb3IgbG9ja2VkIGl0CnJlY3Vyc2l2ZWx5LAorICAvLyBvciB0aGF0IGl0IHJldHVybnMg
RURFQURMSyBpZiByZWN1cnNpdmUgbXV0ZXhlcyBhcmUgbm90IHN1cHBvcnRlZAorICAvLyBhbmQg
dGhlIGNhbGxlciBhbHJlYWR5IG93bnMgdGhlIGxvY2suIFRoaXMgY29kZSB3aWxsIG5vdCB3b3Jr
IHdpdGgKKyAgLy8gaW1wbGVtZW50YXRpb25zIHRoYXQgcmV0dXJuIEVCVVNZIHdoZW4gdGhlIGNh
bGxlciBhbHJlYWR5IGhvbGRzCnRoZQorICAvLyBsb2NrIG9uIHRoZSBtdXRleC4KKyAgc3RhdHVz
ID0gcHRocmVhZF9tdXRleF90cnlsb2NrIChwbXUpOworICBpZiAoc3RhdHVzID09IEVERUFETEsp
CisgICAgLy8gQ2FsbGVyIGFscmVhZHkgb3ducyB0aGUgbG9jay4gSXQncyBvay4KKyAgICByZXR1
cm4gMDsKKworICBpZiAoc3RhdHVzICE9IDApCisgICAgLy8gVWggb2gsIGNhbGxlciBkb2VzIG5v
dCBvd24gdGhpcyBsb2NrIChvciB3ZSBjYW4ndCB0ZWxsKS4gTG9zZS4KKyAgICByZXR1cm4gMTsK
KworICAvLyBXZSBlaXRoZXIgYWNxdWlyZWQgdGhlIGxvY2sgKG5vdCBnb29kKSwgb3IgbG9ja2Vk
IGl0IHJlY3Vyc2l2ZWx5CihvaykuCisgIC8vIEluIGVpdGhlciBjYXNlLCB1bmRvIHRoZSBlZmZl
Y3Qgb2YgdGhlIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayBhbmQKKyAgLy8gcmV0dXJuIDAgaWYgd2Ug
bG9ja2VkIGl0IHJlY3Vyc2l2ZWx5LCAxIG90aGVyd2lzZS4KICNpZiBkZWZpbmVkIChQVEhSRUFE
X01VVEVYX0hBVkVfTV9DT1VOVCkKICAgLy8gT24gTGludXggd2UgZXhwbG9pdCBrbm93bGVkZ2Ug
b2YgdGhlIGltcGxlbWVudGF0aW9uLgogICBpbnQgciA9IHBtdS0+bV9jb3VudCA9PSAxOwoKCi0t
IApDaGFybGVzLUFudG9pbmUgR2F1dGhpZXIKUmVzZWFyY2ggT2ZmaWNlcgpTb2Z0d2FyZSBFbmdp
bmVlcmluZyBHcm91cApJbnN0aXR1dGUgZm9yIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKTmF0aW9u
YWwgUmVzZWFyY2ggQ291bmNpbCBvZiBDYW5hZGEKT3R0YXdhLCBPTiwgQ2FuYWRhCksxQSAwUjYK