Next questions

Martin Fuchs <[email protected]> Wed, 12 Oct 2005 17:08:52 +0200
Newsgroups gmane.comp.java.vm.sablevm.devel
Message-ID <[email protected]>
Hi all

Thank you for your quick reply Etienne!

1) What's exactly a 'native_global' in sablevm?

2) I try to implement the JDWP command 1/5 (VirtualMachine Command Set / 
TopLevelThreadGroups).
Because InelliJ IDEA ask for it. I'll implement it in the same style as 
CMD_THREAD_GROUP_REFERENCE.
Sending only two group id's 1 for system and 2 for user. So I didn't 
need GetTopThreadGroups in JVMDI.
Is that ok like that?

3) I need an explanation about this in jni.h:
/* opaque types */
typedef struct _jobject *jobject;

Is it right, that 'jobject' will be replaced with 'struct _jobject *'?
So _jobject needs to be somewhere declared, right? If yes, where is the 
declaration?

4) If in ./src/libjdwp/transport.c in method 'dt_socket_client(...)' a 
call to
'vm_proper_exit (jdwp, EXIT_FAILURE);' occur, sablevm will cause a
deadlock and I have to kill sablevm. vm_proper_exit calls DestroyJavaVM
(in ./src/libsablvm/invoke_interface.c) and there is the following code:

/* wait for all non-deamon threads to die */
 while (vm->threads.user != NULL)
    {
      _svmm_cond_wait (vm->threads.vm_destruction_cond, vm->global_mutex);
    }

which waits on other threads end. But what's if the other threads are in 
the following state
SVM_THREAD_STATUS_HALTED? On my last debug session it was the 
StartAppHelper thread.

Thanks

Martin