問題タブ [atexit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 未処理の例外が発生したときに sys.exitfunc をスキップする方法
おわかりのように、プログラムが死んだはずの後でさえ、それは墓場から語りかけます。例外が発生した場合に exitfunction を「登録解除」する方法はありますか?
出力
c - atexit() での解放
atexit() 関数でメモリを解放するポイントはありますか?
起動後に malloc されるグローバル変数があります。atexit() 関数を記述して解放することもできますが、プログラムが終了したときに、システムはそのメモリをすべて再利用するのではないでしょうか?
自分で片付けて積極的に掃除することに何かメリットはありますか?
python - Pythonマルチプロセッシングatexitエラー「atexit._run_exitfuncsのエラー」
Pythonで単純な複数プロセスアプリケーションを実行しようとしています。メインスレッドは1からNのプロセスを生成し、それらがすべて処理を完了するまで待機します。プロセスはそれぞれ無限ループを実行するため、ユーザーが中断することなく永久に実行できる可能性があるため、KeyboardInterruptを処理するためのコードを追加しました。
問題は、CTRL-Cを使用して終了すると、プロセスがすぐに終了したように見えても、追加のエラーが発生することです。
私はWindows上でPython2.6を実行しています。Pythonでマルチプロセッシングを処理するためのより良い方法がある場合は、私に知らせてください。
c++ - WSACleanup と atExit
atExit 関数で WSACleanup を登録してもよろしいですか? コード内のさまざまなポイントで終了できるアプリケーションがいくつかあるため、コード全体で WSACleanup を配置することは避けたいと考えています。現在、これらすべてのアプリケーションで使用される dll があるため、DllMain を介して WSAStartup / WSACleanup を呼び出しています。ただし、Microsoft は、デッドロックが発生する可能性があるため、DllMain を介して WSAStartup / WSACleanup を使用しないことを強く推奨しています。WSAStarup を DllMain から移動し、Windows ソケット ライブラリにアクセスする前に、すべてのアプリケーションのコード内のある時点でこれを呼び出すことができます。そして、WSAStartup を呼び出すとすぐに、atExit 関数を使用して WSACleanup への呼び出しを登録します。誰もこのアプローチの経験がありますか? ありがとう!
ruby - ruby at_exit 終了ステータス
at_exit ブロックでプロセスの終了ステータスを自分で判断できますか?
python - 登録されたatexit関数がPyObjCのAppHelper.runEventLoop()で実行されることをどのように確認できますか?
なぜ私がatexit関数を登録したのか疑問に思っています...例:
もちろん、いつatexit
うまくいかないかはわかっています。コメントアウトするAppHelper.runEventLoop()
と、atexit
関数が呼び出されます。pyobjc
また、卵を閲覧したところ、パッケージの__init__.py
下objc
に次のコードが表示されました。
私は無駄な卵の中の参照を探しました。また、try-finallyシェルを囲んでみAppHelper.runEventLoop()
ましたが、finallyブロックのコマンドが呼び出されません。
誰かがここで私を助けてくれることを願っています。
PSアプリケーションデリゲートのメソッドを使用したくないと仮定してapplicationShouldTerminate:
...
specman - specman で実行が終了したときにルーチンを自動的に呼び出すにはどうすればよいですか?
Specman でテストが終了したときに関数を呼び出すように指定する方法はありますか?
C の atexit() に似たものを探しています。
c++ - すべての '_atexit()' 関数が完了した後に一部のコードを実行するようにスケジュールするにはどうすればよいですか
私はメモリ追跡システムを書いていますが、実際に遭遇した唯一の問題は、アプリケーションが終了したときに、コンストラクターで割り当てられなかったが、デコンストラクターで割り当てを解除している静的/グローバル クラスがメモリの後に割り当て解除されていることです。追跡スタッフは、割り当てられたデータがリークとして報告されました。
私が知る限り、これを適切に解決する唯一の方法は、メモリ トラッカーの _atexit コールバックを強制的にスタックの先頭に配置する (最後に呼び出されるようにする) か、全体の後に実行することです。 _atexit スタックが巻き戻されました。これらのソリューションのいずれかを実際に実装することは可能ですか、それとも私が見落としている別のソリューションがありますか。
編集: 私は Windows XP の作業/開発を行っており、VS2005 でコンパイルしています。
c - C では、「メイン プロセスの終了」から「atexit に登録された任意の関数を呼び出す」までのリンクがありません。
C では、メイン プロセスが終了したときに、 に登録されている関数を呼び出すことをどのように知るのatexit()
でしょうか
仕組みはわかりますatexit()
が、「メインプロセスの終了」と「atexit()
に登録されている関数の呼び出し」の間の通信がわかりません。少し冗長です。
ありがとう!