diff --git a/lib/rex/sync/event.rb b/lib/rex/sync/event.rb index 23ce71820a..c71aed36a0 100644 --- a/lib/rex/sync/event.rb +++ b/lib/rex/sync/event.rb @@ -61,22 +61,12 @@ class Event # Waits for the event to become signaled. Timeout is measured in # seconds. Raises TimeoutError if the condition does not become signaled. # - - begin - # XXX: we need to replace this code - # continuations slow down YARV - require "continuation" if not defined? callcc - rescue ::LoadError - end - def wait(t = Infinite) - callcc { |ctx| - self.mutex.synchronize { - ctx.call if (self.state == true) + self.mutex.synchronize { + break if (self.state == true) - Timeout.timeout(t) { - self.cond.wait(self.mutex) - } + Timeout.timeout(t) { + self.cond.wait(self.mutex) } }