$)C
REMOVE
Juergen Kreileder @[<:GT:
> >>>>> Jason Dillon writes:
>
> Jason> This is not really java-linux specific, but this is the
> Jason> only java related group that I am subscribed to. I am
> Jason> wondering if a native method is specified as synchronized
> Jason> if the jvm will perform the proper MontiorEnter &
> Jason> MonitorExit calls or if I should call them in the native
> Jason> method.
>
> Jason> So for example... does:
>
> Jason> native public synchronized byte[] getBytes ();
>
> Jason> imply:
>
> Jason> JNIEXPORT jbyteArray JNICALL Java_<Package>_<Class>_getBytes
> Jason> (JNIEnv *env, jobject jthis)
> Jason> {
> Jason> (*env)->MonitorEnter(env, jthis);
> Jason> /* do something */
> Jason> (*env)->MonitorExit(env, jthis);
>
> Jason> return /* some jbyteArray */;
> Jason> }
>
> Not exactly, the method indeed is synchronized but the synchronization
> is part of the method invocation and return. Section 7.14 of the
> virtual machine specification has more details about that:
> http://java.sun.com/docs/books/vmspec/html/Compiling.doc.html#6530
>
> Juergen
>
> --
> Juergen Kreileder, Universitaet Dortmund, Lehrstuhl Informatik V
> Baroper Strasse 301, D-44221 Dortmund, Germany
> Phone: ++49 231/755-5806, Fax: ++49 231/755-5802