def handle_poll(condition)
metric = self.directory[condition]
result = condition.test
messages = self.log_line(self, metric, condition, result)
if result && condition.notify
self.notify(condition, messages.last)
end
condition.after
dest =
if result && condition.transition
condition.transition
else
metric.destination && metric.destination[result]
end
if dest
begin
self.move(dest)
rescue EventRegistrationFailedError
msg = self.name + ' Event registration failed, moving back to previous state'
applog(self, :info, msg)
dest = self.state
retry
end
else
self.driver.schedule(condition)
end
end