[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:377

From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 13 Dec 2004 18:18:01 +0900
Subject: [yarv-dev:377] Re: Exception Problem with Register Allocated Variable

 ささだです.

> C で書かれた拡張ライブラリ中から longjmp で戻って来るんですね。

 はい.


> 例外発生時でも拡張ライブラリからは普通に return してもらって、
> その際の返り値なり何なりで例外の発生を伝えてもらった方がなんぼか...

 それ(2辺戻値法)だと,拡張ライブラリが若干書きづらくなるん
ですよね.それが出来ればどれだけ楽か.


> って、C で書かれた拡張ライブラリを呼ぶ直前に setjmp しておく、
> ってことはできないんでしょうか。
> そうすることで、戻った後で PC を得られませんか?

 それは可能ですが,「longjmp する可能性のある関数呼び出し」の
前すべてで setjmp するとえらいコストになりそうです.基本的に
Ruby C API ではたいてい例外発生する可能性がありますから.

-- 
// SASADA Koichi at atdot dot net
//


--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       366 2004-12-11 02:51 [ko1 atdot.net       ] Exception Problem with Register Allocated Variable
       368 2004-12-11 10:08 ┗[nobu.nokada softhome]                                       
       369 2004-12-11 11:34  ┗[ko1 atdot.net       ]                                     
       373 2004-12-12 22:25   ┗[shudo computer.org  ]                                   
       374 2004-12-13 01:05    ┗[maeda-yarv atusi.org]                                 
       375 2004-12-13 14:46     ┗[ko1 atdot.net       ]                               
       376 2004-12-13 18:13      ┗[shudo computer.org  ]                             
->     377 2004-12-13 18:18       ┗[ko1 atdot.net       ]                           
       378 2004-12-13 19:47        ┗[shudo computer.org  ]