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

そんなんプロセスかスレッドかの違い、ほとんど同じじゃないですか (メモリ空間を共有してるくらいで) (もっとも、共有されたメモリ空間が汚染されていないことを保証してくださいという話にはなるけど)

既存のフレームワークを利用しないで書く太古の(?)GUIも(というか最低限のGUIフレームワーク自作みたいな感じの時も)、わりとそういう風に書くのが普通かも?><(じゃないと操作不能になりやすいし><)

orange さんがブースト

フレームワークがないだけでシステムプログラミングだのベアメタルだのミッションクリティカルだの言われるのは納得いかないけど、とりあえず GUI 環境が特殊であるというのは確かっぽい

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

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

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

orange さんがブースト

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

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

スレッドを表示

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

orange さんがブースト

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

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

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

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

orange さんがブースト

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

スレッドを表示

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

orange さんがブースト

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

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

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

orange さんがブースト

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

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

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

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

orange さんがブースト

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

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

古いものを表示
:realtek:

思考の /dev/null