From ruby-ext-admin@netlab.co.jp Sat Jul 31 01:34:45 1999 Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by blade.nagaokaut.ac.jp (8.8.8/8.8.8/Debian/GNU) with ESMTP id BAA06585; Sat, 31 Jul 1999 01:34:45 +0900 Received: from hoyogw.netlab.co.jp (matz@localhost [127.0.0.1]) by hoyogw.netlab.co.jp (8.9.3+3.2W/3.7W/1.3) with SMTP id BAA32184; Sat, 31 Jul 1999 01:32:34 +0900 Date: Sat, 31 Jul 1999 01:36:05 +0900 From: =?ISO-2022-JP?B?GyRCQ2ZCPDZHO0sbKEI=?= Nakamura Akifumi Reply-To: ruby-ext@netlab.co.jp Subject: [ruby-ext:00359] Re: Data_Wrap_Struct GC To: ruby-ext@netlab.co.jp (ruby-ext ML) Message-Id: <37A1C665168.0C0E.BXQ04723@nifty.ne.jp> In-Reply-To: <19990729182915X.MAP2303@narnia.nis.nec.co.jp> References: <19990729182915X.MAP2303@narnia.nis.nec.co.jp> X-ML-Name: ruby-ext X-Mail-Count: 00359 X-MLServer: fml [fml 2.2]; post only (only members can post) X-ML-Info: If you have a question, send a mail with the body "# help" (without quotes) to the address ruby-ext-ctl@netlab.co.jp; help= X-Mailer: Becky! ver 1.22 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Precedence: bulk Lines: 20 お世話になっております。 A.中村です。 On Thu, 29 Jul 1999 18:29:15 +0900 "Dai.K." wrote: > Data_Wrap_Struct() で C構造体を持つオブジェクトを作ります。 > ここで、同じC構造体を持つ別の Ruby Object を生成した場合、一方の参照が消 > えたら、そのオブジェクトはもう一方の状態に関係なく GC されると思います。 > この場合、同様にチェック無く free に指定した関数まで呼ばれますか? C言語の掟(笑)で「よそで起きたことは感知(関知)しない」 でしょうから、freeは呼ばれるでしょうね。 freeが(というより指定した任意の関数が)呼ばれる「のを」 保証するData_Wrap_Structですから。 やっぱり、C構造体かRubyオブジェクトか、どっちかに 参照係数(笑)を持たせて管理するような事柄ですよねえ…