1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/include/ruby
normal 6dda4f17a9 socket: memoize common socket families in fptr->mode
This provides a minor speedup by avoiding an extra syscall

	require 'socket'
	require 'benchmark'
	nr = 100000
	msg = 'hello world'
	buf = ''
	size = msg.bytesize
	puts(Benchmark.measure do
	  UNIXSocket.pair(:SEQPACKET) do |a, b|
	    nr.times do
	      a.sendmsg_nonblock(msg, 0, exception: false)
	      b.recv(size, 0, buf)
	    end
	  end
	end)

             user     system      total        real
before:  0.330000   0.340000   0.670000 (  0.678235)
 after:  0.290000   0.240000   0.530000 (  0.534527)

* ext/socket/rubysocket.h: flags for common socket families
  (rsock_getfamily): update signature
* include/ruby/io.h: comment socket FMODE flags
* ext/socket/init.c (rsock_getfamily): memoize family
* ext/socket/basicsocket.c: adjust rsock_getfamily calls
* ext/socket/ancdata.c: ditto
  [ruby-core:69713] [Feature #11298]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-02 01:58:14 +00:00
..
backward
debug.h
defines.h fix condition 2015-05-26 12:37:42 +00:00
encoding.h string.c: rb_str_new_static 2014-09-19 05:53:00 +00:00
intern.h intern.h: rb_strlen_lit 2015-06-24 03:47:10 +00:00
io.h socket: memoize common socket families in fptr->mode 2015-07-02 01:58:14 +00:00
missing.h
oniguruma.h
re.h re.c: rb_reg_region_copy 2014-12-01 21:30:58 +00:00
regex.h
ruby.h $SAFE=2 is now obsolete 2015-06-18 14:33:12 +00:00
st.h st.c: use ccan linked-list (try 3) 2015-06-29 18:10:00 +00:00
subst.h
thread.h
thread_native.h
util.h * ext/win32ole/win32ole.c: fix a typo. Patch by @davydovanton 2015-06-04 02:53:11 +00:00
version.h ruby/version.h: bump API version 2014-12-29 11:16:17 +00:00
vm.h
win32.h * file.c (File::SHARE_DELETE): new flag to be able to delete opened file 2015-06-12 12:14:06 +00:00