about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-11-21 08:52:31 +0000
committerEric Wong <e@80x24.org>2015-11-21 08:55:02 +0000
commit707041b330c7c5c4d901fde092a7faa8bb8f9f65 (patch)
treee06b413019645c86d4371126e211f9a5e133f2d3
parenta5d88662a519406eea6f180a010af8ef829464e7 (diff)
downloadrainbows-707041b330c7c5c4d901fde092a7faa8bb8f9f65.tar.gz
In the unlikely case somebody runs revactor, they won't need to
load the extra fcntl.so library into their process anymore.

In retrospect, we could've alway used IO#close_on_exec= since
it appeared in 1.9.1 and (IIRC) revactor always required 1.9.1+
-rw-r--r--lib/rainbows/revactor.rb1
-rw-r--r--lib/rainbows/revactor/client.rb3
2 files changed, 1 insertions, 3 deletions
diff --git a/lib/rainbows/revactor.rb b/lib/rainbows/revactor.rb
index e68fee6..fae5f16 100644
--- a/lib/rainbows/revactor.rb
+++ b/lib/rainbows/revactor.rb
@@ -1,6 +1,5 @@
 # -*- encoding: binary -*-
 require 'revactor'
-require 'fcntl'
 Revactor::VERSION >= '0.1.5' or abort 'revactor 0.1.5 is required'
 
 # Enables use of the Actor model through {Revactor}[http://revactor.org]
diff --git a/lib/rainbows/revactor/client.rb b/lib/rainbows/revactor/client.rb
index c1cb7aa..5b1e52d 100644
--- a/lib/rainbows/revactor/client.rb
+++ b/lib/rainbows/revactor/client.rb
@@ -1,6 +1,5 @@
 # -*- encoding: binary -*-
 # :enddoc:
-require 'fcntl'
 class Rainbows::Revactor::Client
   autoload :TeeSocket, 'rainbows/revactor/client/tee_socket'
   RD_ARGS = {}
@@ -11,7 +10,7 @@ class Rainbows::Revactor::Client
   def initialize(client)
     @client, @rd_args, @ts = client, [ nil ], nil
     io = client.instance_variable_get(:@_io)
-    io.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
+    io.close_on_exec = true
     @kgio_addr = if Revactor::TCP::Socket === client
       @rd_args << RD_ARGS
       client.remote_addr