=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