問題タブ [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.

0 投票する
3 に答える
531 参照

ruby - 親を殺さずにサブシェルでルビーを終了する

次のコマンドでRubyprogramBを呼び出すRubyprogramAがあります。

特定の条件下で、programBにその操作(および関連するサブシェル)を終了させたいが、programAが次のパラメーターのセットに進むことを許可したい。

ただし、exit()サブシェルabort()と親の両方Process.kill("SIGTERM",0)を強制終了すると、programBで作業できなくなります(残念ながら、これはWindows上にあります)。私はruby1.9.2を実行しています。

programAを強制終了せずにprogramBを終了するにはどうすればよいですか?

0 投票する
3 に答える
1371 参照

android - Adobe Flash Builder Flex Mobile Android:ユーザーがアプリを閉じることができないようにする

私はアンドロイド用のアプリを開発しています。アプリがOSによっていつ終了されるかは、私には必ずしも明確ではありません。戻るボタンを押したときに発生することもあれば、ホームボタンを押したときに発生することもあります。この背後にあるロジックは何ですか?

私のアプリは長期間アクティブ化され続ける必要があります(アプリを実行するとき、アプリは常駐している必要があります)。また、別の質問は、イベントが発生したときにポップアップして画面をアクティブにし、それを前面に表示できるかどうかです。

誰かがこれをすでに作ったのですか?または、これに関する詳細情報(方法)はありますか?インターネットを検索しても、役立つものが見つかりません。

0 投票する
3 に答える
409 参照

termination - Agda: サブコリストの同値関係

CoList (Maybe Nat)s のみjustを考慮した sの等価性を定義したいと思います。もちろん、単に からCoList (Maybe A)に移動することはできませんCoList A。それは必ずしも生産的ではないからです。

では、私の質問は、そのような等価関係を (決定可能性に目を向けずに) どのように定義できるかということです。just無限の尾を非同等と見なすことができれば、それは役に立ちますか?

以下の@gallaisは、この関係を単純に定義できるはずだと示唆しています。

しかし、それが推移的であることを証明すると、終了チェッカーから (予想される) 問題が発生します。

nothingそこで、 @Vitusが提案したように、両側があまり曖昧でないケースを作成してみました:

transしかし、問題のあるケース(穴を残したケース) を定義する方法がわかりません。

0 投票する
2 に答える
114 参照

c - プログラムがユーザーによって終了されたときに初期化された接続を閉じる方法

libpqライブラリを使用して PostgreSQL データベースにデータを投稿する C でデーモンを作成しています。次のような構造になっています。

誰かがアプリケーションを強制終了すると、PostgreSQL サーバーで接続が開いたままになります。それは避けたい。このコードはパフォーマンスに依存するフレームワークの一部であるため、export(...) 関数で接続を開いたり閉じたりすることはできません。

0 投票する
1 に答える
371 参照

c - ISO C では、割り当てられたメモリをプログラムの終了後にぶら下げることができますか?

私の何人かの同僚に興味深い点が生じました.何人かの同僚は、何があっても自分のことを常にfree覚えておくべきだと主張していますmalloc. 私はいつもこれが一般的に良い習慣だと思ってきましたが、次のようなプログラムでは必要ないと主張する人もいます:

彼らの主張は、プロセスが終了するとメモリがクリーンアップされるというものでした。

さて、地元の標準的な超オタクとして、彼らは私に説明を求めてきましたが、驚いたことに、常に無料の群衆実際には正しいようです.

C11, に目を向けると、 の末尾に到達することは を呼び出すことと同じ5.1.2.2.3 Program terminationであると単純に述べられています。mainexit

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 functionsmallocや などのすべてのお気に入りの動作を指示しますfree。プロセスが終了する前に解放されていないメモリがどうなるかについては、まったく言及されていません。それは単に述べています:

割り当てられたオブジェクトの有効期間は、割り当てから解放まで延長されます。

これは実装が何をするかという問題ではないことに注意してください。これまでに見たほぼすべての実装がプロセス空間内にメモリアリーナを格納し、プロセスが終了すると破棄されることをよく知っています。これは、ISO C 標準で許可されているものです。

この「終了時に解放」動作を義務付ける標準には何も見つからないため、割り当てられたメモリがプロセスの終了を生き延びた実装が実現可能です (mallocたとえば、永続的な共有メモリを使用する を考えてください)。

そこで質問です。(ISO C によると) 割り当てられたメモリが、それを割り当てたプロセスがなくなった後でもリソースを消費し続ける可能性はありますか?

または、これを意味のないものにする標準の何かを見逃したことがありますか?

0 投票する
1 に答える
67 参照

android - アプリが更新される前にユーザーに警告を発する (おそらく自動的に)

アプリの新しいバージョンを準備しているときに、以前のバージョンでは、すべての状況でプログラムの状態が永続的なストレージに保存されないことがわかりました。したがって、更新が実行されると、この情報が失われる可能性があります。

このバグについてユーザーに警告し、更新を実行する前にプログラムの状態が適切に保存されるようにする方法をアドバイスする方法はありますか?

ありがとう

0 投票する
2 に答える
115 参照

java - SQLite を使用して、スレッドの有効期間を安全に結び付ける方法

タイトルについて申し訳ありませんが、質問をタイトルに入れる方法が本当にわかりません。誰かがそれをもっとうまく言えたら、それを修正してください!

とにかく、私のプログラムには2つのスレッドがあります.1つはメインプログラムであり、GUIを実行し、ユーザーに関係するすべてを実行します.作成されると、Webサイトをチェックして更新が利用可能かどうかを確認するためだけに役立つスレッドが作成されます.プログラムが使用する SQLite データベースに、JSON で情報を引き出し、挿入クエリでデータベースを更新する必要があります (これは明らかに、ユーザーがデータベースの更新中にデータにアクセスしない)。これで問題ありません。

ただし、プログラムが閉じられてメイン クラスが終了すると、更新スレッドもできるだけ早く停止する必要があります。スレッドを中断し、データベースが開いている場合は閉じる必要があると思いますが、メインスレッドが終了するとすぐにトリガーするにはどうすればよいですか? ループを使用しないため、スレッド1が生きているかどうかを確認できません...

アップデーターからこれまでのところ重要なコードは次のとおりです。

では、メイン スレッドが停止したときにアップデータを確実に停止するにはどうすればよいでしょうか。JVM によって強制終了されたスレッドは、例外をスローしたり、更新プログラムを強制終了してデータベースを閉じるためにオーバーライドできるクリーンアップ関数呼び出しを行ったりしますか?

編集:わかりました、私は解決策を見つけましたが、私はまだより良いアイデアを喜んで受け入れます...

これは、GUI の JFrame にアタッチされています。

どこ kill はアップデーターを中断し、データベースが確実に閉じられるようにします:D

編集 2 : GUI を閉じると、ほとんどの場合、すべてのクリーニングが完了したにプログラムが InterruptedException を出すようです。いくつかのデバッグ ステートメントでこれを証明し、エラーを送信しているデバッグ ファイルがそれを選択していないことも証明しました。アップ (つまり、プログラムは完全に閉じられます) であり、例外のスタック トレースは、私のコードやそのことについて何も話しません:

なぜこれが起こっているのか誰にも分かりますか?wait は実際にはコード内で呼び出されることはないため、別のものでなければなりません...

0 投票する
2 に答える
1341 参照

c - 終了ハンドラとクリーンアップ アクションを通知します

次のシグナルを管理する必要があります: SIGHUP, SIGINT, SIGQUIT,SIGTERM 以下のコードは の例SIGHUPです:

私の考えは、プロセスを終了し、クリーンアップ操作の後に同じシグナルを再発生させるという、シグナルのデフォルト処理を再アクティブ化することです。

sigでシャットダウン機能に渡すにはどうすればよいsa.sa_handler = handler;ですか?

さらに、これらの場合に一般的に取られるクリーニングアクションは何ですか? 私のシナリオは、TCP ソケットといくつかの開いているファイルを備えたモノスレッド サーバーです。

0 投票する
2 に答える
3434 参照

iphone - 現在実行中のxCodeプロジェクトを適切に停止するには?

これはばかげた質問のように聞こえるかもしれませんが、iOS 6 viewDidUnload が呼び出されなくなったため、現在開発デバイスで xCode を使用してデバッグ中の iOS アプリを適切に終了する方法に興味があります。下の停止ボタンを押すだけで十分ですか?

ここに画像の説明を入力

そのボタンを押すと、正確には何が起こりますか? これは、アプリに停止信号を送信して、アプリをすぐに終了することと同じですか? dealloc コードのいずれかが呼び出されますか? 私が尋ねている理由は、開始/停止を使用してデバッグを繰り返した後、アプリにランダムなメモリの問題があるように見える問題が発生しているためです (プロファイリングでリークは検出されません)。

あなたの考えは大歓迎です!

0 投票する
2 に答える
862 参照

php - set_time_limit PHP 時のユーザー定義関数呼び出し

ファイルを一定期間実行したい。これには set_time_limit 関数を使用できます。しかし、終了時に関数を呼び出したいです。この関数は呼び出す必要があります。そうしないと、このファイルを再度実行できなくなります。

set_time_limit 制限に達した場合、終了時に関数を呼び出す方法はありますか?