Angela Lin wrote:
> In the IBM VM, we assume that Unsafe.unpark() is always passed a
> Thread. The incoming object is not type-checked. This assumption was
> valid in the past and was probably made for performance reasons.
> 
> It would be safer (from my point of view, at least) to leave the
> signature as unpark(Thread). I don't think this would cause binary
> incompatibility, since the native declaration would be unpark(jobject)
> in any case.

The concern is for Java class file binary compatibility.  If people
compile their Java code against our version of unpark(Thread) then it
will not run on the RI version, defined as unpark(Object).  They will
get a NoSuchMethodError.

> If j.u.concurrent is passing non-Thread objects to unpark(), this
> would be a much more significant problem for us.

For sure.

In my simple test of passing in a String...
 IBM 5.0SR2 -> segmentation error
 Sun 1.6b65 -> does nothing

Regards,
Tim

Reply via email to