コード例 #1
0
 @BreakpointHandler("readNextChunk")
 public static void onReadNextChunk(BreakPoint self, DebugInterface di) throws Exception {
   // Check because the interfering thread will trigger this too
   if (txCopyingThread != null && di.thread().name().equals(txCopyingThread.name())) {
     txCopyingThread.suspend(null);
     interferingThread.resume();
     self.disable();
   }
 }
コード例 #2
0
 @BreakpointHandler("setProperties")
 public static void handleSetProperties(BreakPoint self, DebugInterface di) {
   self.disable();
   if (removerThread != null) {
     removerThread.resume();
     removerThread = null;
   }
   readerThread = di.thread().suspend(DebuggerDeadlockCallback.RESUME_THREAD);
 }
コード例 #3
0
 @BreakpointHandler("makeSureNextTransactionIsFullyFetched")
 public static void onStartingStoreCopy(
     BreakPoint self,
     DebugInterface di,
     @BreakpointHandler("readNextChunk") BreakPoint onReadNextChunk)
     throws Exception {
   // Wait for the other thread to recycle the channel
   latch.await();
   txCopyingThread = di.thread();
   self.disable();
 }
コード例 #4
0
 @BreakpointHandler(value = "commitPropertyMaps")
 public static void exitCommitPropertyMaps(BreakPoint self, DebugInterface di) {
   self.disable();
   readerThread.resume();
   readerThread = null;
 }