@Test public void testMultipleSloppyStopsHaveNoEffect() throws Exception { DrainBarrier barrier = new DrainBarrier(); barrier.stopAndDrainOps(); barrier.stopAndDrainOps(); }
public void stopAndDrainOps() throws InterruptedException { stopAndDrainOps(true); }
DrainBarrier { public void stopAndDrainOps() throws InterruptedException { stopAndDrainOps(true); } }
DrainBarrier { public void stopAndDrainOps() throws InterruptedException { stopAndDrainOps(true); }  }
DrainBarrier { public void stopAndDrainOps() throws InterruptedException { stopAndDrainOps(true); }  boolean beginOp(); @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NN_NAKED_NOTIFY", justification="First, we do change the state before notify, 2nd, it doesn't even matter") void endOp(); void stopAndDrainOps(); void stopAndDrainOpsOnce(); }
DrainBarrier { public void stopAndDrainOps() throws InterruptedException { stopAndDrainOps(true); }  boolean beginOp(); @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="NN_NAKED_NOTIFY", justification="First, we do change the state before notify, 2nd, it doesn't even matter") void endOp(); void stopAndDrainOps(); void stopAndDrainOpsOnce();  }