From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS9026 62.212.0.0/19 X-Spam-Status: No, score=-1.2 required=3.0 tests=AWL,BAYES_00,URIBL_BLOCKED shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: sleepy-penguin@bogomips.org Received: from submission.geniusware.it (submission.geniusware.it [62.212.12.144]) by dcvr.yhbt.net (Postfix) with ESMTP id CE9462042E for ; Mon, 7 Dec 2015 03:40:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by submission.orlandi.com (Postfix) with ESMTP id C0A5E4C1611 for ; Mon, 7 Dec 2015 04:40:13 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at submission.orlandi.com Received: from submission.orlandi.com ([127.0.0.1]) by localhost (submission.orlandi.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id SKw7nhrXITWW for ; Mon, 7 Dec 2015 04:40:13 +0100 (CET) Received: from [IPv6:2a02:20:20::20] (unknown [IPv6:2a02:20:20::20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: daniele@orlandi.com) by submission.orlandi.com (Postfix) with ESMTPSA id 72E064C0B9C for ; Mon, 7 Dec 2015 04:40:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=orlandi.com; s=default; t=1449459613; bh=beBkTAsbrohpRjYvstVsh8/i3QRUZhIoiNSuEa4mbtE=; h=From:Subject:To:Date:From; b=YulFMUC51wU+5PVwBXpN9MYMg37lgt9073MSkBgjnEyzZ8exIGASSRyy79ejutyMy gWoaEYCIO8xLIC05BHTJbGgLc9QDFSvZjfrryRfYIIE3MjBxGW84FW5PXeNXYX+aPu bQR4XylU8g2R6ooCN27kKQUscDtXhEjbG1szgXB8= From: Daniele Orlandi Subject: Events are still delivered after an IO object is deleted from epoll To: sleepy-penguin@bogomips.org Message-ID: <5664FF9D.4030408@orlandi.com> Date: Mon, 7 Dec 2015 04:40:13 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit List-Id: Hello, I have a classic event loop like this: loop do @actor_epoll.wait do |events, io| receive(events, io) end end In #receive, sometimes I close and remove an "io" object from the epoll via #del (e.g. in a timerfd I close ad remove a socket) However it appears that if there are queued events the block may still be called afterwise. Not a big deal, easily workaround-able, but you may want to give a look at it. Bye, -- Daniele Orlandi