Github user revans2 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2734#discussion_r198569630
  
    --- Diff: storm-client/src/jvm/org/apache/storm/utils/Time.java ---
    @@ -185,8 +173,17 @@ public static void advanceTimeNanos(long nanos) {
             if (nanos < 0) {
                 throw new IllegalArgumentException("advanceTime only accepts 
positive time as an argument");
             }
    -        long newTime = SIMULATED_CURR_TIME_NANOS.addAndGet(nanos);
    -        LOG.debug("Advanced simulated time to {}", newTime);
    +        synchronized (SLEEP_TIMES_LOCK) {
    +            long newTime = SIMULATED_CURR_TIME_NANOS.addAndGet(nanos);
    +            Iterator<AtomicLong> sleepTimesIter = 
THREAD_SLEEP_TIMES_NANOS.values().iterator();
    +            while (sleepTimesIter.hasNext()) {
    +                AtomicLong curr = sleepTimesIter.next();
    +                if (SIMULATED_CURR_TIME_NANOS.get() >= curr.get()) {
    +                    sleepTimesIter.remove();
    +                }
    +            }
    +            LOG.debug("Advanced simulated time to {}", newTime);
    +        }
    --- End diff --
    
    OK +1


---

Reply via email to