mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
lib/webrick/utils.rb: simplify by avoiding fcntl
IO#nonblock= and IO#close_on_exec= methods are simpler-to-use and potentially more portable to for future OSes. IO#nonblock= and IO#close_on_exec= are also smart enough to avoid redundantly setting flags so a syscall may be avoided. These methods could probably be removed entirely and inlined, but it's unclear if there is 3rd-party code which relies on them. * lib/webrick/utils.rb (set_non_blocking): use IO#nonblock= * (set_close_on_exec): use IO#close_on_exec= [Feature #11136] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
932e916b9e
commit
29a914ff2e
2 changed files with 9 additions and 9 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Sun May 17 17:21:29 2015 Eric Wong <e@80x24.org>
|
||||||
|
|
||||||
|
* lib/webrick/utils.rb (set_non_blocking): use IO#nonblock=
|
||||||
|
* (set_close_on_exec): use IO#close_on_exec=
|
||||||
|
[Feature #11136]
|
||||||
|
|
||||||
Sun May 17 15:01:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sun May 17 15:01:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* numeric.c (num_positive_p, num_negative_p): add methods
|
* numeric.c (num_positive_p, num_negative_p): add methods
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
# $IPR: utils.rb,v 1.10 2003/02/16 22:22:54 gotoyuzo Exp $
|
# $IPR: utils.rb,v 1.10 2003/02/16 22:22:54 gotoyuzo Exp $
|
||||||
|
|
||||||
require 'socket'
|
require 'socket'
|
||||||
require 'fcntl'
|
require 'io/nonblock'
|
||||||
require 'etc'
|
require 'etc'
|
||||||
|
|
||||||
module WEBrick
|
module WEBrick
|
||||||
|
@ -17,20 +17,14 @@ module WEBrick
|
||||||
##
|
##
|
||||||
# Sets IO operations on +io+ to be non-blocking
|
# Sets IO operations on +io+ to be non-blocking
|
||||||
def set_non_blocking(io)
|
def set_non_blocking(io)
|
||||||
flag = File::NONBLOCK
|
io.nonblock = true if io.respond_to?(:nonblock=)
|
||||||
if defined?(Fcntl::F_GETFL)
|
|
||||||
flag |= io.fcntl(Fcntl::F_GETFL)
|
|
||||||
end
|
|
||||||
io.fcntl(Fcntl::F_SETFL, flag)
|
|
||||||
end
|
end
|
||||||
module_function :set_non_blocking
|
module_function :set_non_blocking
|
||||||
|
|
||||||
##
|
##
|
||||||
# Sets the close on exec flag for +io+
|
# Sets the close on exec flag for +io+
|
||||||
def set_close_on_exec(io)
|
def set_close_on_exec(io)
|
||||||
if defined?(Fcntl::FD_CLOEXEC)
|
io.close_on_exec = true if io.respond_to?(:close_on_exec=)
|
||||||
io.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
module_function :set_close_on_exec
|
module_function :set_close_on_exec
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue