NetBSDでは、時々SIG_SUSPENDが投げられてるのにsuspend_handler()が呼ばれないことがあって、そのせいでGC_stop_world()のsem_wait()が永久にsem_post()を待ち続けてしまうんだ。NetBSD-specificじゃない。少なくともGC_stop_world()が同期的に働くなら、GC_restart_world()も同じように働くべき。オーバーヘッドがあるから、他のプラットフォームで同様の問題が発生しないなら、NetBSD-specificなコードということにした方がいいのかもしれない。俺の壊れた英語じゃあどこまで伝わったか不明。俺がNetBSDで発生するSIG_SUSPENDのロストを現象面でしか理解してないのが一番の問題だな。正直なんでロストするのかわからなかったんだもの。Lisp統合環境として最近よく話題に上るSLIMEをScheme48に対しても使えるようにしたSLIME48ってのがあるらしい。実は「SLIMEはすごいらしい」という噂話を聞いて、「それってGaucheでも使えるようにならんかな」と思いソースを覗き始めたところだったので、先を越された気分。俺の場合「思いつくだけ」でなかなか行動に移らないのだけれど。