=1B$B31$H$$$$$^$9!#=1B(B =1B$B$3$l=3DhM}:Q$_$J46$8$,$7$^$9!#=1B(B =1B$B%Q%C%A$O$h$/$o$+$i$J$+$C$?$N$G=1B(Breject=1B$B$7$^$7$?!#=1B(B r32028 (trunk) lib/drb/drb.rb (kill_sub_thread): remove the method. = [ruby-core:34185] On 2011/06/26, at 16:10, Hiroshi NAKAMURA wrote: >=20 > Issue #4243 has been updated by Hiroshi NAKAMURA. >=20 > Target version changed from 1.9.2 to 1.9.3 >=20 >=20 > ---------------------------------------- > Bug #4243: [PATCH] DRb should not forefully close connections on = DRb#stop_service > http://redmine.ruby-lang.org/issues/4243 >=20 > Author: Jonas Pfenniger > Status: Assigned > Priority: Normal > Assignee: Masatoshi Seki > Category: lib > Target version: 1.9.3 > ruby -v: 1.9.2@30363 >=20 >=20 > =3Dbegin > When DRb#stop_service is called, all connections get terminated by > calling Thread.kill on them. It means that all code that is invoked = trough > DRb must be exception-safe. This poses the same kind of issues we have > with Kernel#timeout. >=20 > This patch changes the behavior or DRb to only kill the accepting > thread, so that no new connections are made. New queries are also > rejected. DRb#stop_service is synchronous and waits for all = child-threads > to terminate. > --- > Please note that this patch is quite old, so I may have forgotten some = details > of it. It was posted on rubyforge at = http://rubyforge.org/tracker/?func=3Ddetail&atid=3D1698&aid=3D14438&group_= id=3D426. > The new version got imported into git and applies on top of = ae3666b38fd723231c0bbc3c33f4603b6e0e0ef0 or svn r30363 (not sure about = the patch format) >=20 > This patch can easily be back-ported to 1.8.x since drb.rb hasn't = changed much. >=20 > Cheers,=20 > zimbatm > =3Dend >=20 >=20 >=20 > --=20 > http://redmine.ruby-lang.org >=20