* io.c (nogvl_close, maygvl_close, nogvl_fclose, maygvl_fclose):
  new functions.
* io.c (fptr_finalize): release GVL if possible.
  Patched by Eric Wong. [Feature #4570] [ruby-core:35711]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io.rb (test_advise_pipe): new test to check
  io.advise() against anonymous io object don't make crash.
  made by Eric Wong. [Bug #6081] [ruby-core:42880]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/sync.rb (Sync_m): Removed RCS_ID.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* include/ruby/intern.h (rb_thread_blocking_region): Added
  a comment of recommended alternative way.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/sync.rb (Sync_m#sync_lock): Fixed wakeup/raise unsafe code.
  Patched by Masaki Matsushita. [Bug #5355] [ruby-dev:44521]

* test/thread/test_sync.rb (test_sync_lock_and_wakeup,
  test_sync_upgrade_and_wakeup, test_sync_lock_and_raise):
  new test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* properties.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/thread.rb (Queue#pop): Fixed double registration issue when
  mutex.sleep is interrupted. [Bug #5258] [ruby-dev:44448]
* lib/thread.rb (SizedQueue#push): ditto.

* test/thread/test_queue.rb (test_sized_queue_and_wakeup,
test_queue_pop_interrupt, test_sized_queue_pop_interrupt,
test_sized_queue_push_interrupt): new tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: exec() requires to be single threaded also on Haiku.
  by Takashi Toyoshima <toyoshim@gmail.com>
  https://github.com/ruby/ruby/pull/178

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 2012-09-10

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (rb_io_close): notify fd close before releasing gvl.
* io.c (fptr_finalize): modify fptr->mode before releasing gvl.
  remove unnecessary rb_thread_fd_close().
  [Feature #4570] [ruby-core:35711]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c (nogvl_close, maygvl_close, nogvl_fclose, maygvl_fclose):
  suppress integer <-> pointer cast warnings.
  [Feature #4570] [ruby-core:35711]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/socket/basicsocket.c (rsock_bsock_send):
  avoid unnecessary select() calls before doing I/O
  Patch by Eric Wong. [Feature #4538] [ruby-core:35586]
* ext/socket/init.c (rsock_s_recvfrom): ditto.
* ext/socket/init.c (rsock_s_accept): ditto.
* ext/socket/udpsocket.c (udp_send): ditto.
* io.c (io_fflush): ditto.
* io.c (io_binwrite): ditto.
* io.c (rb_io_syswrite): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enc/depend: fixed wrong change in a part of r34802.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/socket/{basicksocket,init,udpsocket}.c: revert some parts of
  r36944.  it breaks mswin/mingw ruby and brought into many many
  crashes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
thread.c: static

* thread.c (patrol_thread): should be static.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e