diff --git a/lib/session_manager.rb b/lib/session_manager.rb index 90f6a8e90aed33856f06172cd7e2b82ec9aaf977..b469f3b5ab04e36a0ed6592ab91f48026b01dd15 100644 --- a/lib/session_manager.rb +++ b/lib/session_manager.rb @@ -12,11 +12,12 @@ class SessionManager end def promise_for(stanza, timeout: @timeout) + begin; raise Timeout, "Timeout"; rescue Timeout; timeout_exception = $!; end id = "#{stanza.to.stripped}/#{stanza.public_send(@id_msg)}" @sessions.fetch(id) do @sessions[id] = EMPromise.new EM.add_timer(timeout) do - @sessions.delete(id)&.reject(Timeout.new) + @sessions.delete(id)&.reject(timeout_exception) end @sessions[id] end