新しいものを表示
orange さんがブースト

GUI フレームワーク内とかいう環境が超特殊で癖があるだけだと思いました

なのでプロセス内でも、スレッドもだけど構造自体適切に分割してって・・・・><;

orange さんがブースト

まるごと破棄可能な単位を用意して独立した文脈で実行するの、実質サブプロセスと同じじゃないですかそんなの。

実際 OS の GUI システムとプロセスがメッセージパッシングなり何なりで「通信」することで動作しているわけで。

スレッドを表示

場合にはよるけど、そうかも><;

orange さんがブースト

結局不整合をまるごと破棄できるプロセスという単位を再度抽象化した存在としてスレッドを利用しているだけに見える

スレッドを表示
orange さんがブースト

それ「スレッドをクラッシュさせてる」んじゃないんですか……?

ダメもとでもリソース解放する処理を実行するか?とかの話をとりあえず横においておくと、
つまりGUIアプリとそれ以外のアプリ(?)では、よほどの事がない限り実行を続けなければならないとされる部分の内包度?が違うってことになるのかも?><;

orange さんがブースト

そもそも GUI アプリケーションは暗黙に動くレイヤーがあるので前提の共有が面倒すぎる……

スレッドを表示

うん><;
あと、そもそも少なくともWindowsの場合は実際の処理はよほど軽量で単純なもの以外はGUIスレッドで動かすのはお行儀悪いって事になってるし、(古典的な実装では)場合によっては処理するスレッド作り直しかも><;

orange さんがブースト

それ結局コアのロジックはちゃんと殺してるってことじゃないですか

ファイル読み込んだら問題なく使えたって話も、ちゃんと内部で初期化するように作ってるので(というか一旦破棄して作り直すので)、再起動した時とほぼ変わらず動かせるって事かも><

オレンジのアプリの書き方だとそれが内部で分割されてて、アプリ単位よりも部分ごとに止められるってだけかも><
「その部分(/アプリ)はバグってるんだから実行しない方がいい」って意味なら、アプリ終了(またはクラッシュ)させたあともう一回実行するのも同じでしょ?><

orange さんがブースト

私は「OS によるプロセス実行を即座にやめさせろ」と言っているのではなく「汚染されたおそれのある実行文脈を破棄しろ」と言っているわけで、文脈が破棄されたあとメッセージを表示して終了するくらいの遺言は普通にあるべきだと思います

スレッドを表示
orange さんがブースト

「ダメだった」と伝えたあとユーザに何も通常の操作を許さず終了するなら、実質クラッシュじゃないですか?
CLI プログラムのクラッシュだって abort 前にメッセージを表示しますよ

いや、無事だって主張してるんじゃなくアプリは終了せずに処理は中止して「ダメだった!><」ってユーザーに伝えてるんだけど・・・><

orange さんがブースト

何が起きたかもわからないのに「俺は無事です」と主張するプログラム、普通に信用できないんですが……

それはよくわからないけど、GUIを持つアプリはGUIが全く操作不能になることだけは絶対に避けなければならない(最悪でもいかなるときにも終了ボタンは機能しなければならない)って発想で作ってた><(GUIアプリをCとかで書くのが辺り前だった頃の古い本ならわりと近いことが書いてあったかも><)

orange さんがブースト

そういえば Win 9x でブルースクリーンから復帰できるやつを思い出した (もちろん復帰してもファイルの保存などはできない)

あれ復帰する意味あるか?????

スレッドを表示

よくわからないけど、受けとることすら不可能だったら外側で例外が最終的なキャッチ(ポケモンキャッチ?)されて「なんだかよくわからないけどこの機能はダメっぽい>< 出来る限りの終了処理はしてみた><(その状況のデバッグ用データ)」みたいな感じになるかも><
でもアプリは終了させない><(実用的な処理はなにもしてないけど生きていてGUIは使用できる><)
ように作るようにしてる><

orange さんがブースト

mstdn.nere9.help/@orange_in_sp

> 関門の向こうから受け取ったものが「ダメっぽい><」となったら

これ「ダメっぽいデータが来ることを想定している」ので「想定」の範疇じゃないですか、想定していない状況の話ではないですよね……

スレッドを表示
古いものを表示
:realtek:

思考の /dev/null