あひる焼き中野の梓さん
FiberErrorのやつ、シグナルハンドラの中からGtk.mainなりDialog#runなりで新しくメインループを起動している限り解決は無理っぽい気がしてきた。そもそもDelayerという発想自体が1スレッドのイベントループを前提としたものだから、メインスレッドを擬似的にサスペンドするテクとは相性が致命的に悪そう(メインスレッドが止まってるのにメインスレッドでenqueueされたイベントを消費し続けたいというニーズがDelayerの設計思想と噛み合ってない)
結論は結局 https://dev.mikutter.hachune.net/issues/995#note-15 だけど、適切な実装というのが本質的に存在しなさそう
再帰Gtk.mainはGTKのイベントを処理し続けるためのテクなので(だよね?)思想が噛み合ってないは言い過ぎな気がしてきた。再帰Gtk.mainによる擬似yieldと本物のFiberとシグナルハンドラの実装が干渉したことによる悲劇っぽい(が、こう書くと擬似yieldというテクの存在がすべての原因っぽく見えてくる)
そもそも令和時代にもなってダイアログが閉じるのをblocking function callで待ち受ける必要があるのか?人類がGtk.mainを再帰するのをやめれば平和的に解決するのでは?