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: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, T_RP_MATCHES_RCVD shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: sleepy-penguin@bogomips.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id E77F61FAE5; Fri, 5 Jun 2015 09:26:19 +0000 (UTC) From: Eric Wong To: sleepy-penguin@bogomips.org Cc: Eric Wong Subject: [PATCH] epoll: allow :CLOEXEC instead of the long constant Date: Fri, 5 Jun 2015 09:26:16 +0000 Message-Id: <1433496376-3003-1-git-send-email-normalperson@yhbt.net> List-Id: The long constant name conveys no additional info. Since epoll_create1 is rarely called, and a cache lookup for cold code is wasfeful --- ext/sleepy_penguin/epoll.c | 2 +- test/test_epoll.rb | 7 +++++++ test/test_epoll_io.rb | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ext/sleepy_penguin/epoll.c b/ext/sleepy_penguin/epoll.c index 423ed69..120af0c 100644 --- a/ext/sleepy_penguin/epoll.c +++ b/ext/sleepy_penguin/epoll.c @@ -82,7 +82,7 @@ static struct ep_per_thread *ept_get(VALUE self, int maxevents) static VALUE s_new(VALUE klass, VALUE _flags) { int default_flags = RB_SP_CLOEXEC(EPOLL_CLOEXEC); - int flags = rb_sp_get_flags(klass, _flags, default_flags); + int flags = rb_sp_get_flags(cEpoll, _flags, default_flags); int fd = epoll_create1(flags); VALUE rv; diff --git a/test/test_epoll.rb b/test/test_epoll.rb index 61b6e8c..48dd0ad 100644 --- a/test/test_epoll.rb +++ b/test/test_epoll.rb @@ -343,6 +343,13 @@ class TestEpoll < Testcase @ep.close io = Epoll.new(Epoll::CLOEXEC).to_io assert((io.fcntl(Fcntl::F_GETFD) & Fcntl::FD_CLOEXEC) == Fcntl::FD_CLOEXEC) + io.close + + # prettier, slower, but more memory efficient due to lack of caching + # due to the constant cache: + io = Epoll.new(:CLOEXEC).to_io + + assert((io.fcntl(Fcntl::F_GETFD) & Fcntl::FD_CLOEXEC) == Fcntl::FD_CLOEXEC) end def test_new diff --git a/test/test_epoll_io.rb b/test/test_epoll_io.rb index 56a3808..5452de1 100644 --- a/test/test_epoll_io.rb +++ b/test/test_epoll_io.rb @@ -23,7 +23,7 @@ class TestEpollIO < Testcase class EpSub < Epoll::IO def self.new - super(SleepyPenguin::Epoll::CLOEXEC) + super(:CLOEXEC) end end -- EW