[ruby-dev:24361] Re: finalizer

From: Tanaka Akira <akr@...17n.org>
Date: 2004-09-27 06:06:32 UTC
List: ruby-dev #24361
In article <200409270441.i8R4fYfs017744@sharui.nakada.niregi.kanuma.tochigi.jp>,
  nobu@ruby-lang.org writes:

> なるほど。全ノードごとにコストが増えるのは避けたいので、stack
> checkと同じタイミングに入れてみました。

えぇと、試してませんが、組み込みライブラリ等から明示的に rb_gc を呼び
出すときには、finalizer の実行による資源の開放を期待している - 具体的
にいえば file descriptor の開放を期待している - ようなので、rb_gc とい
う関数自体は finalizer を実行したほうがいいかも。

% grep 'rb_gc(' *.c~gc.c ext/**/*.c    
dir.c:      rb_gc();
io.c:       rb_gc();
io.c:       rb_gc();
io.c:       rb_gc();
io.c:       rb_gc();
ext/iconv/iconv.c:          rb_gc();
ext/socket/socket.c:        rb_gc();
ext/socket/socket.c:        rb_gc();
ext/socket/socket.c:        rb_gc();
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread