タグ付けされた質問 「signals」

シグナルは、イベントが発生したプロセスへの通知です。信号は、ソフトウェア割り込みとして説明されることがあります。信号は、プログラムの通常の実行フローを中断するという点でハードウェア割り込みに似ています。ほとんどの場合、信号がいつ到着するかを正確に予測することはできません。これらはC標準で定義され、POSIXで拡張されていますが、他の多くのプログラミング言語/システムでも同様にアクセスできます。

7
Django:ユーザーがログインしたときに通知しますか?
私のDjangoアプリでは、ユーザーがログインしたときにいくつかの定期的なバックグラウンドジョブの実行を開始し、ユーザーがログアウトしたときにそれらの実行を停止する必要があるため、エレガントな方法を探しています。 ユーザーのログイン/ログアウトの通知を受け取る ユーザーのログインステータスを照会する 私の観点からすると、理想的な解決策は それぞれによって送信された信号django.contrib.auth.views.loginと... views.logout またはdjango.contrib.auth.models.User.is_logged_in()に類似した方法... User.is_active()... User.is_authenticated() Django 1.1.1にはそれがなく、ソースにパッチを適用して追加するのは気が進まない(とにかく、それを行う方法がわからない)。 一時的な解決策として、is_logged_inブールフィールドをUserProfileモデルに追加しました。これはデフォルトでクリアされ、ユーザーが最初にランディングページ(で定義LOGIN_REDIRECT_URL = '/')にアクセスしたときに設定され、後続のリクエストでクエリされます。これをUserProfileに追加したので、その目的のためだけに組み込みのUserモデルから派生してカスタマイズする必要はありません。 私はこの解決策が好きではありません。ユーザーが明示的にログアウトボタンをクリックした場合、フラグをクリアできますが、ほとんどの場合、ユーザーはページを離れるか、ブラウザーを閉じるだけです。これらの場合にフラグをクリアすることは、私には簡単ではないようです。その上(それはむしろデータモデルの明快さのニッチピッキングです)、UserProfileにis_logged_inは属していませんが、Userモデルに属しています。 誰かが別のアプローチを考えることができますか?
83 python  django  login  signals 

3
ミューテックスをロックせずにpthread_cond_signalを呼び出す
pthread_cond_signalを呼び出す前にミューテックスをロックし、呼び出した後にミューテキストのロックを解除する必要があることをどこかで読みました。 pthread_cond_signal()ルーチンは、条件変数を待機している別のスレッドに信号を送る(またはウェイクアップする)ために使用されます。ミューテックスがロックされた後に呼び出す必要があり、pthread_cond_wait()ルーチンを完了するためにミューテックスのロックを解除する必要があります。 私の質問は、ミューテックスをロックせずにpthread_cond_signalまたはpthread_cond_broadcastメソッドを呼び出しても大丈夫ではないかということです。

4
POSIXスレッドとシグナル
私は、POSIXスレッドとPOSIXシグナルがどのように相互作用するかについての複雑さを理解しようとしてきました。特に、私は興味があります: シグナルが配信されるスレッドを制御するための最良の方法は何ですか(そもそも致命的ではないと仮定して)? シグナルが到着したことを別のスレッド(実際にはビジーである可能性があります)に伝える最良の方法は何ですか?(シグナルハンドラーからpthread条件変数を使用するのは悪い考えであることはすでに知っています。) シグナルが発生したという情報を他のスレッドに渡すことを安全に処理するにはどうすればよいですか?これはシグナルハンドラーで発生する必要がありますか?(私は一般的に他のスレッドを殺したくありません;私ははるかに微妙なアプローチが必要です。) これが必要な理由については、TclXパッケージを変換してスレッドをサポートする方法、または分割して少なくともいくつかの便利なパーツでスレッドをサポートする方法を研究しています。信号は、特に興味深い部分の1つです。
81 c  pthreads  signals 

2
IBMサンプルコード、非再入可能関数がシステムで機能しない
プログラミングの再入学を勉強していました。IBMのこのサイト(本当に良いサイト)。以下にコピーしたコードを見つけました。これは、ウェブサイトに登場する最初のコードです。 コードは、「危険なコンテキスト」で絶えず変化する2つの値を出力することにより、テキストプログラムの非線形開発(非同期)で変数への共有アクセスに関する問題を示します。 #include <signal.h> #include <stdio.h> struct two_int { int a, b; } data; void signal_handler(int signum){ printf ("%d, %d\n", data.a, data.b); alarm (1); } int main (void){ static struct two_int zeros = { 0, 0 }, ones = { 1, 1 }; signal (SIGALRM, signal_handler); data = zeros; alarm …
11 c  gcc  signals  x86-64  data-race 

2
ジュリアでのシステム信号傍受
Linuxで動作するJuliaプログラムでは、コンソールウィンドウのサイズが変更されたときに専用のアクションを起動する必要があります。では、ジュリアでは、システム信号SIGWINCH(ウィンドウのサイズ変更)をインターセプトして、必要なアクションを実行する関数をそれにアタッチできますか? Adaでは、それを宣言するのはかなり簡単です。 protected Signalhandler is procedure Handlewindowresizing; pragma Attach_Handler (Handlewindowresizing, SIGWINCH); end Signalhandler; SCHEMERのアイデアに基づく暫定的な解決策:SIGWINCH割り込み監視を実行するCライブラリを使用しようとします。 myLibrary.h void Winresize (void Sig_Handler()); myLibrary.c #include "myLibrary.h" #include <stdio.h> #include <stdlib.h> #include <signal.h> void Winresize(void sig_handler (void)) { signal(SIGWINCH, sig_handler); } コンパイルとライブラリの準備 gcc -c -Wall -fPIC myLibrary.c gcc -shared -fPIC -o myLibrary.so myLibrary.o C-Libraryを使用するJuliaのプログラム: function …
9 julia  signals  ada 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.