anchor.diff:    static DoubleLinkedQueue<_Timer> _timers;
   
     static ReceivePort _receivePort;
  +  static bool _handling_callbacks = false;
   
     var _callback;
     int _milliSeconds;
  
positive.code: 
  
    void _notifyEventHandler() {
      if (_timers.firstEntry() === null) {
        if (_receivePort !== null) {
          EventHandler._sendData(-1, _receivePort, _NO_TIMER);
          _shutdownTimerHandler();
        }
      } else {
        EventHandler._sendData(-1,
                               _receivePort,
                               _timers.firstEntry().element._wakeupTime);
  
negative.code:     void _handleTimeout() {
        int currentTime = (new Date.now()).value + _TIMER_JITTER;
  
        // Collect all pending timers.
        DoubleLinkedQueueEntry<_Timer> entry = _timers.firstEntry();
        var pending_timers = new List();
        while (entry !== null) {
          _Timer timer = entry.element;
          if (timer._wakeupTime <= currentTime) {
            entry.remove();
            pending_timers.addLast(timer);
            entry = _timers.firstEntry();
          } else {
            break;
          }
        }
  
        // Trigger all of the pending timers. New timers added as part of the
        // callbacks will be enqueued now and notified in the next spin at the
        // earliest.
        _handling_callbacks = true;
        try {
          for (var timer in pending_timers) {
            timer._callback(timer);
            if (timer._repeating) {
              timer._advanceWakeupTime();
              timer._addTimerToList();
            }
          }
        } finally {
          _handling_callbacks = false;
        }
        _notifyEventHandler();
      }
  