JNI calls that don't return

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andrew Haley wrote:
> Maybe you know something I don't.  Is there any wordage in the JNI
> spec that forbids blocking calls, or suggests that this might be
> problematic?  Is there any wordage in the JNI spec that allows the
> Jikes RVM to behave in the way that it does with repect to blocking
> calls?
>   
Andrew,

I am concerned about green threads and problems caused on JVMs using 
them by classpath - the issues with blocking threads and synchronization 
have been highlighted. As I understand the JNI spec. it is designed to 
explain how to access Java objects, invoke Java methods from native 
code. It is a specification of an API and doesn't state what is valid 
native code - it would have to address a large number of APIs to do 
that. The book "Advanced Programming for the Java 2 Platform" that I 
quoted from does shed some light on what programmers using the JNI API 
can do, and they recommend that JNI programmers accessing MFC in their 
example but GTK for us, should use a single Java thread. I would argue 
their reasoning for this is that it avoids green threading problems. I 
don't believe we should use a single thread to handle GTK peer code, but 
we need to address the problems the current GTK peer code has with green 
threaded JVMs. This leads to 3 solutions:

1) declare green threaded JVMs unsuitable for use with parts of classpath
2) try to fix the portable native sync code - which has issues that I 
keep repeating
3) have conditionally compiled/run code that makes the code behave 
better in the situation of a green threaded JVM

My reasons for posting was to see what people believe is the correct 
route from these 3 alternatives.

Thanks,

Ian


[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux