呼び出し元Rubyスレッドをwait状態にしつつQApplication::exec()をGVL解放で実行して、QtのSignalからRuby処理系にアクセスが必要な時はGVL取り直すみたいなユーティリティを書けばアレン要らんかもしれん
Rb main thread
|--→ Rb sub thread
|join |--→ w/o GVL QApp::exec()
| | |
| |←--| return
|←--| finish
|
return
あっこれでいけるか
これならメインスレッドは待ちが必要であることをRubyが認識できるし、GVL解放でQtのイベントループに突入できそう
サブスレッドはうまいこと待ち合わせが必要だな