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: AS47066 71.19.144.0/20 X-Spam-Status: No, score=-1.9 required=3.0 tests=AWL,BAYES_00 shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: normalperson@yhbt.net Received: from zedshaw2.xen.prgmr.com (zedshaw2.xen.prgmr.com [71.19.156.177]) by dcvr.yhbt.net (Postfix) with ESMTP id C90B81F6FA for ; Tue, 30 Apr 2013 02:40:18 +0000 (UTC) Received: from zedshaw2.xen.prgmr.com (unknown [IPv6:::1]) by zedshaw2.xen.prgmr.com (Postfix) with ESMTP id 4948D73DEE for ; Tue, 30 Apr 2013 02:42:16 +0000 (UTC) MIME-Version: 1.0 Date: Tue, 30 Apr 2013 02:39:28 +0000 From: Eric Wong List-Archive: List-Help: List-Id: List-Post: List-Subscribe: List-Unsubscribe: Message-Id: <1367289582-31293-4-git-send-email-normalperson@yhbt.net> Precedence: list References: <1367289582-31293-1-git-send-email-normalperson@yhbt.net> Sender: sleepy.penguin@librelist.org Subject: [sleepy.penguin] [PATCH 03/17] test_epoll: avoid sleeping inside a signal handler To: sleepy.penguin@librelist.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit It's generally unsafe to sleep inside a signal handler, and seems to cause intermittent test failures. --- test/test_epoll.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/test_epoll.rb b/test/test_epoll.rb index 163a32c..c6cc198 100644 --- a/test/test_epoll.rb +++ b/test/test_epoll.rb @@ -154,10 +154,13 @@ def test_max_events_small def test_signal_safe_wait_forever time = {} + thr = nil trap(:USR1) do time[:USR1] = Time.now - sleep 0.5 - @wr.write '.' + thr = Thread.new do + sleep 0.5 + @wr.syswrite '.' + end end @ep.add @rd, Epoll::IN tmp = [] @@ -178,6 +181,8 @@ def test_signal_safe_wait_forever assert_in_delta(0.5, usr1_delay, 0.1, "usr1_delay=#{usr1_delay}") ep_delay = time[:EP] - time[:USR1] assert_in_delta(0.5, ep_delay, 0.1, "ep1_delay=#{ep_delay}") + assert_kind_of Thread, thr + thr.join ensure trap(:USR1, 'DEFAULT') end -- 1.8.2.1.367.gc875ca7