Gauche > Archives > 2012/12/21

2012/12/21 09:25:33 UTC(び)
#
http://twitter.com/anohana/status/282038769375391744
#
これやっぱりよくわかりません。ソースコードのどの辺りを見ればいいか教えていただけませんか?
2012/12/21 18:50:35 UTCshiro
#
暗黙の限定継続というより、一度Cの呼び出しが挟まってしまうとSchemeの継続との相性が最悪になってしまうのですよね。今は [Schemeのread] -> [CのScm_Read] -> [CのScm_Getc] -> [portの種類に応じたハンドラ] と呼び出されて、ブロックするかどうかは最後のところでわかりますが、そこからSchemeを呼び出して継続をつかまえてもCのスタック部分はどうにもなりません。CのScm_Readのところでブロックするかどうかを検出できれば、そこからSchemeに制御を戻すことができるだろうな、程度の思いつきです。どうやって検出すべきかはあんまり考えてません。
#
なおwrite側の事情も似たようなものです。
2012/12/21 23:05:53 UTC(び)
#
ありがとうございます。けっこうやっかいそうだな、というのだけはわかりました。