@useResult Future<bool> tryWait(Duration timeout) { if (_isSet) { if (mode == EventResetMode.autoReset) { _isSet = false; } return _true; } else { return _queue.enqueue(timeout); } }