ruby/ext
normal df4e282eeb delay `exception: false' checks for minor speedup
Delay hash lookups until we are about to hit an exception.  This
gives a minor speedup ratio of 2-3% in the new bm_io_nonblock_noex
benchmark as well as reducing code.

* benchmark/bm_io_nonblock_noex.rb: new benchmark
* ext/openssl/ossl_ssl.c (no_exception_p): new function
  (ossl_start_ssl): adjust for no_exception_p
  (ossl_ssl_connect): adjust ossl_start_ssl call
  (ossl_ssl_connect_nonblock): ditto
  (ossl_ssl_accept): ditto
  (ossl_ssl_accept_nonblock): ditto
  (ossl_ssl_read_internal): adjust for no_exception_p
  (ossl_ssl_write_internal): ditto
  (ossl_ssl_write): adjust ossl_write_internal call
  (ossl_ssl_write_nonblock): ditto
* ext/stringio/stringio.c (strio_read_nonblock):
  delay exception check
* io.c (no_exception_p): new function
  (io_getpartial): call no_exception_p
  (io_readpartial): adjust for io_getpartial
  (get_kwargs_exception): remove
  (io_read_nonblock): adjust for io_getpartial,
  check no_exception_p on EOF
  (io_write_nonblock): call no_exception_p
  (rb_io_write_nonblock): do not check `exception: false'
  (argf_getpartial): adjust for io_getpartial
  [ruby-core:69778] [Feature #11318]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-02 22:22:14 +00:00
..
-test- * test/-ext-/popen_deadlock/test_popen_deadlock.rb: test [Bug #11265] 2015-06-25 12:42:07 +00:00
bigdecimal * ext/bigdecimal/bigdecimal.gemspec: Fix require paths for released gem. 2015-06-13 02:35:25 +00:00
continuation continuation.c: quiet static-linked-ext 2014-11-27 19:58:04 +00:00
coverage * ext/coverage/coverage.c: Remove extension from require argument. 2015-04-12 04:52:23 +00:00
date date_parse.c: use ALLOCV 2015-06-16 09:46:06 +00:00
dbm dbm.c: fix doc 2014-12-30 00:29:28 +00:00
digest digest.c: GC guard 2015-05-21 05:03:55 +00:00
etc ext: suppress warnings 2015-04-19 03:19:20 +00:00
fcntl protoize no-arguments functions 2014-09-30 05:25:32 +00:00
fiber * cont.c (ruby_Init_{Continuation_body,Fiber_as_Coroutine}): prefixed 2009-01-20 07:17:28 +00:00
fiddle * include/ruby/ruby.h: $SAFE=2 is now obsolete. 2015-06-18 14:21:03 +00:00
gdbm use 0 for reserved 2014-12-01 06:38:04 +00:00
io * ext/io/console/depend (.list.chksum): revert a part of r50859, because 2015-06-13 10:47:30 +00:00
json generator.c: allocate structs with wrapper 2015-05-28 07:17:55 +00:00
mathn * complex.c (nucomp_canonicalization): renamed. 2008-12-12 23:40:55 +00:00
nkf nkf.c: add semicolon 2014-12-26 06:09:31 +00:00
objspace ext/objspace/objspace_dump.c: adjust indent 2015-06-21 03:21:34 +00:00
openssl delay `exception: false' checks for minor speedup 2015-07-02 22:22:14 +00:00
pathname * ext/pathname/lib/pathname.rb (descend): Blockless form supported. 2015-06-14 15:14:46 +00:00
psych psych: allocate structs with wrapper 2015-05-29 05:44:01 +00:00
pty * internal.h (rb_execarg_parent_end): Declared. 2015-04-09 12:44:35 +00:00
racc/cparse cparse.c: typed data 2014-12-03 00:48:59 +00:00
rbconfig/sizeof sizes.c.tmpl: extract RUBY_DEFINT 2015-06-28 22:24:05 +00:00
readline readline.c: initialize before rl_refresh_line 2015-01-14 06:43:50 +00:00
ripper Update dependencies. 2014-12-19 13:34:54 +00:00
sdbm _sdbm.c: fix pointers to shift 2015-02-04 08:35:08 +00:00
socket socket: memoize common socket families in fptr->mode 2015-07-02 01:58:14 +00:00
stringio delay `exception: false' checks for minor speedup 2015-07-02 22:22:14 +00:00
strscan allocate structs with wrapper 2015-05-16 12:56:48 +00:00
syslog Update dependencies. 2014-12-19 13:34:54 +00:00
thread thread.c: refine enums 2015-02-27 03:55:00 +00:00
tk tkutil.c: fix out-of-bounds access 2015-06-01 01:55:10 +00:00
win32 * ext/win32/Win32API.rb (initialize): accept both a string and an array 2015-02-25 13:08:01 +00:00
win32ole * ext/win32ole/win32ole.c: fix a typo. Patch by @davydovanton 2015-06-04 02:53:11 +00:00
zlib * ext/zlib/zlib.c: Fix indentation for rdoc. 2015-06-11 10:11:30 +00:00
.document * ext/win32ole/win32ole.c: separate WIN32OLE::VARIANT src file 2014-08-02 14:55:36 +00:00
Setup * ext/dl/*: remove DL as it is replaced by Fiddle. 2014-10-31 21:13:09 +00:00
Setup.atheos * ext/dl/*: remove DL as it is replaced by Fiddle. 2014-10-31 21:13:09 +00:00
Setup.emx * ext/dl/*: remove DL as it is replaced by Fiddle. 2014-10-31 21:13:09 +00:00
Setup.nacl * ext/dl/*: remove DL as it is replaced by Fiddle. 2014-10-31 21:13:09 +00:00
Setup.nt * ext/dl/*: remove DL as it is replaced by Fiddle. 2014-10-31 21:13:09 +00:00
extmk.rb extmk.rb: fix with-ext condition 2015-06-18 22:58:14 +00:00