idle(&response_handler)
public
Sends an IDLE command that waits for notifications of new or expunged messages. Yields
responses from the server during the IDLE.
Use #idle_done() to leave IDLE.
# File lib/net/imap.rb, line 862
def idle(&response_handler)
raise LocalJumpError, "no block given" unless response_handler
response = nil
synchronize do
tag = Thread.current[:net_imap_tag] = generate_tag
put_string("#{tag} IDLE#{CRLF}")
begin
add_response_handler(response_handler)
@idle_done_cond = new_cond
@idle_done_cond.wait
@idle_done_cond = nil
ensure
remove_response_handler(response_handler)
put_string("DONE#{CRLF}")
response = get_tagged_response(tag, "IDLE")
end
end
return response
end