jdk/src/jdk.jdwp.agent/share/native/libjdwp/invoker.c
changeset 38352 b0ac5e2b8641
parent 37331 ad222f3750f5
child 41198 f7477110f0d7
equal deleted inserted replaced
38340:ef34263f90ef 38352:b0ac5e2b8641
   275 {
   275 {
   276     InvokeRequest *request;
   276     InvokeRequest *request;
   277 
   277 
   278     JDI_ASSERT(thread);
   278     JDI_ASSERT(thread);
   279 
   279 
       
   280     debugMonitorEnter(invokerLock);
   280     request = threadControl_getInvokeRequest(thread);
   281     request = threadControl_getInvokeRequest(thread);
   281     if (request == NULL) {
   282     if (request == NULL) {
   282         EXIT_ERROR(AGENT_ERROR_INVALID_THREAD, "getting thread invoke request");
   283         EXIT_ERROR(AGENT_ERROR_INVALID_THREAD, "getting thread invoke request");
   283     }
   284     }
   284 
   285 
   285     request->available = JNI_TRUE;
   286     request->available = JNI_TRUE;
       
   287     debugMonitorExit(invokerLock);
   286 }
   288 }
   287 
   289 
   288 jvmtiError
   290 jvmtiError
   289 invoker_requestInvoke(jbyte invokeType, jbyte options, jint id,
   291 invoker_requestInvoke(jbyte invokeType, jbyte options, jint id,
   290                       jthread thread, jclass clazz, jmethodID method,
   292                       jthread thread, jclass clazz, jmethodID method,
   737         outStream_sendReply(&out);
   739         outStream_sendReply(&out);
   738     }
   740     }
   739 }
   741 }
   740 
   742 
   741 jboolean
   743 jboolean
   742 invoker_isPending(jthread thread)
   744 invoker_isEnabled(jthread thread)
   743 {
   745 {
   744     InvokeRequest *request;
   746     InvokeRequest *request;
       
   747     jboolean isEnabled;
   745 
   748 
   746     JDI_ASSERT(thread);
   749     JDI_ASSERT(thread);
       
   750     debugMonitorEnter(invokerLock);
   747     request = threadControl_getInvokeRequest(thread);
   751     request = threadControl_getInvokeRequest(thread);
   748     if (request == NULL) {
   752     if (request == NULL) {
   749         EXIT_ERROR(AGENT_ERROR_INVALID_THREAD, "getting thread invoke request");
   753         EXIT_ERROR(AGENT_ERROR_INVALID_THREAD, "getting thread invoke request");
   750     }
   754     }
   751     return request->pending;
   755     isEnabled = request->available;
   752 }
   756     debugMonitorExit(invokerLock);
   753 
   757     return isEnabled;
   754 jboolean
       
   755 invoker_isEnabled(jthread thread)
       
   756 {
       
   757     InvokeRequest *request;
       
   758 
       
   759     JDI_ASSERT(thread);
       
   760     request = threadControl_getInvokeRequest(thread);
       
   761     if (request == NULL) {
       
   762         EXIT_ERROR(AGENT_ERROR_INVALID_THREAD, "getting thread invoke request");
       
   763     }
       
   764     return request->available;
       
   765 }
   758 }
   766 
   759 
   767 void
   760 void
   768 invoker_detach(InvokeRequest *request)
   761 invoker_detach(InvokeRequest *request)
   769 {
   762 {