問題タブ [termination]
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.
ruby - 親を殺さずにサブシェルでルビーを終了する
次のコマンドでRubyprogramBを呼び出すRubyprogramAがあります。
特定の条件下で、programBにその操作(および関連するサブシェル)を終了させたいが、programAが次のパラメーターのセットに進むことを許可したい。
ただし、exit()
サブシェルabort()
と親の両方Process.kill("SIGTERM",0)
を強制終了すると、programBで作業できなくなります(残念ながら、これはWindows上にあります)。私はruby1.9.2を実行しています。
programAを強制終了せずにprogramBを終了するにはどうすればよいですか?
android - Adobe Flash Builder Flex Mobile Android:ユーザーがアプリを閉じることができないようにする
私はアンドロイド用のアプリを開発しています。アプリがOSによっていつ終了されるかは、私には必ずしも明確ではありません。戻るボタンを押したときに発生することもあれば、ホームボタンを押したときに発生することもあります。この背後にあるロジックは何ですか?
私のアプリは長期間アクティブ化され続ける必要があります(アプリを実行するとき、アプリは常駐している必要があります)。また、別の質問は、イベントが発生したときにポップアップして画面をアクティブにし、それを前面に表示できるかどうかです。
誰かがこれをすでに作ったのですか?または、これに関する詳細情報(方法)はありますか?インターネットを検索しても、役立つものが見つかりません。
termination - Agda: サブコリストの同値関係
CoList (Maybe Nat)
s のみjust
を考慮した sの等価性を定義したいと思います。もちろん、単に からCoList (Maybe A)
に移動することはできませんCoList A
。それは必ずしも生産的ではないからです。
では、私の質問は、そのような等価関係を (決定可能性に目を向けずに) どのように定義できるかということです。just
無限の尾を非同等と見なすことができれば、それは役に立ちますか?
以下の@gallaisは、この関係を単純に定義できるはずだと示唆しています。
しかし、それが推移的であることを証明すると、終了チェッカーから (予想される) 問題が発生します。
nothing
そこで、 @Vitusが提案したように、両側があまり曖昧でないケースを作成してみました:
trans
しかし、問題のあるケース(穴を残したケース) を定義する方法がわかりません。
c - プログラムがユーザーによって終了されたときに初期化された接続を閉じる方法
libpqライブラリを使用して PostgreSQL データベースにデータを投稿する C でデーモンを作成しています。次のような構造になっています。
誰かがアプリケーションを強制終了すると、PostgreSQL サーバーで接続が開いたままになります。それは避けたい。このコードはパフォーマンスに依存するフレームワークの一部であるため、export(...) 関数で接続を開いたり閉じたりすることはできません。
c - ISO C では、割り当てられたメモリをプログラムの終了後にぶら下げることができますか?
私の何人かの同僚に興味深い点が生じました.何人かの同僚は、何があっても自分のことを常にfree
覚えておくべきだと主張していますmalloc
. 私はいつもこれが一般的に良い習慣だと思ってきましたが、次のようなプログラムでは必要ないと主張する人もいます:
彼らの主張は、プロセスが終了するとメモリがクリーンアップされるというものでした。
さて、地元の標準的な超オタクとして、彼らは私に説明を求めてきましたが、驚いたことに、常に無料の群衆が実際には正しいようです.
C11, に目を向けると、 の末尾に到達することは を呼び出すことと同じ5.1.2.2.3 Program termination
であると単純に述べられています。main
exit
7.22.4.4 The exit function
具体的には、クリーンアップされたものをリストします。
atexit
すべてのハンドラを呼び出します。- 未書き込みのバッファリングされたすべてのオープン ストリームがフラッシュされます。
- 開いているすべてのストリームが閉じられます。
- によって作成されたすべてのファイル
tmpfile
が閉じられます。 - 制御は環境に戻されます。
割り当てられたメモリのクリーンアップについては言及されていません。
ここで を見ると6.2.4 Storage duration of objects
、「割り当てられた」がここで興味深いものである 4 つの保存期間が言及されています。さらに、次のように述べています。
割り当てられたストレージについては、7.22.3 で説明されています。
7.22.3 Memory management functions
malloc
や などのすべてのお気に入りの動作を指示しますfree
。プロセスが終了する前に解放されていないメモリがどうなるかについては、まったく言及されていません。それは単に述べています:
割り当てられたオブジェクトの有効期間は、割り当てから解放まで延長されます。
これは実装が何をするかという問題ではないことに注意してください。これまでに見たほぼすべての実装がプロセス空間内にメモリアリーナを格納し、プロセスが終了すると破棄されることをよく知っています。これは、ISO C 標準で許可されているものです。
この「終了時に解放」動作を義務付ける標準には何も見つからないため、割り当てられたメモリがプロセスの終了を生き延びた実装が実現可能です (malloc
たとえば、永続的な共有メモリを使用する を考えてください)。
そこで質問です。(ISO C によると) 割り当てられたメモリが、それを割り当てたプロセスがなくなった後でもリソースを消費し続ける可能性はありますか?
または、これを意味のないものにする標準の何かを見逃したことがありますか?
android - アプリが更新される前にユーザーに警告を発する (おそらく自動的に)
アプリの新しいバージョンを準備しているときに、以前のバージョンでは、すべての状況でプログラムの状態が永続的なストレージに保存されないことがわかりました。したがって、更新が実行されると、この情報が失われる可能性があります。
このバグについてユーザーに警告し、更新を実行する前にプログラムの状態が適切に保存されるようにする方法をアドバイスする方法はありますか?
ありがとう
java - SQLite を使用して、スレッドの有効期間を安全に結び付ける方法
タイトルについて申し訳ありませんが、質問をタイトルに入れる方法が本当にわかりません。誰かがそれをもっとうまく言えたら、それを修正してください!
とにかく、私のプログラムには2つのスレッドがあります.1つはメインプログラムであり、GUIを実行し、ユーザーに関係するすべてを実行します.作成されると、Webサイトをチェックして更新が利用可能かどうかを確認するためだけに役立つスレッドが作成されます.プログラムが使用する SQLite データベースに、JSON で情報を引き出し、挿入クエリでデータベースを更新する必要があります (これは明らかに、ユーザーがデータベースの更新中にデータにアクセスしない)。これで問題ありません。
ただし、プログラムが閉じられてメイン クラスが終了すると、更新スレッドもできるだけ早く停止する必要があります。スレッドを中断し、データベースが開いている場合は閉じる必要があると思いますが、メインスレッドが終了するとすぐにトリガーするにはどうすればよいですか? ループを使用しないため、スレッド1が生きているかどうかを確認できません...
アップデーターからこれまでのところ重要なコードは次のとおりです。
では、メイン スレッドが停止したときにアップデータを確実に停止するにはどうすればよいでしょうか。JVM によって強制終了されたスレッドは、例外をスローしたり、更新プログラムを強制終了してデータベースを閉じるためにオーバーライドできるクリーンアップ関数呼び出しを行ったりしますか?
編集:わかりました、私は解決策を見つけましたが、私はまだより良いアイデアを喜んで受け入れます...
これは、GUI の JFrame にアタッチされています。
どこ kill はアップデーターを中断し、データベースが確実に閉じられるようにします:D
編集 2 : GUI を閉じると、ほとんどの場合、すべてのクリーニングが完了した後にプログラムが InterruptedException を出すようです。いくつかのデバッグ ステートメントでこれを証明し、エラーを送信しているデバッグ ファイルがそれを選択していないことも証明しました。アップ (つまり、プログラムは完全に閉じられます) であり、例外のスタック トレースは、私のコードやそのことについて何も話しません:
なぜこれが起こっているのか誰にも分かりますか?wait は実際にはコード内で呼び出されることはないため、別のものでなければなりません...
c - 終了ハンドラとクリーンアップ アクションを通知します
次のシグナルを管理する必要があります: SIGHUP
, SIGINT
, SIGQUIT
,SIGTERM
以下のコードは の例SIGHUP
です:
私の考えは、プロセスを終了し、クリーンアップ操作の後に同じシグナルを再発生させるという、シグナルのデフォルト処理を再アクティブ化することです。
sig
でシャットダウン機能に渡すにはどうすればよいsa.sa_handler = handler;
ですか?
さらに、これらの場合に一般的に取られるクリーニングアクションは何ですか? 私のシナリオは、TCP ソケットといくつかの開いているファイルを備えたモノスレッド サーバーです。
iphone - 現在実行中のxCodeプロジェクトを適切に停止するには?
これはばかげた質問のように聞こえるかもしれませんが、iOS 6 viewDidUnload が呼び出されなくなったため、現在開発デバイスで xCode を使用してデバッグ中の iOS アプリを適切に終了する方法に興味があります。下の停止ボタンを押すだけで十分ですか?
そのボタンを押すと、正確には何が起こりますか? これは、アプリに停止信号を送信して、アプリをすぐに終了することと同じですか? dealloc コードのいずれかが呼び出されますか? 私が尋ねている理由は、開始/停止を使用してデバッグを繰り返した後、アプリにランダムなメモリの問題があるように見える問題が発生しているためです (プロファイリングでリークは検出されません)。
あなたの考えは大歓迎です!
php - set_time_limit PHP 時のユーザー定義関数呼び出し
ファイルを一定期間実行したい。これには set_time_limit 関数を使用できます。しかし、終了時に関数を呼び出したいです。この関数は呼び出す必要があります。そうしないと、このファイルを再度実行できなくなります。
set_time_limit 制限に達した場合、終了時に関数を呼び出す方法はありますか?