問題タブ [semaphore]
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.
php - semop 呼び出しの EINTR エラー
共有リソースを安全に更新するために、php スクリプトで次のコード フラグメントを使用しています。
多数のリクエストを使用してこのコードをストレス テストすると、エラーが発生します。
PHPソースは、SYSVSEM_SETVALの取得に失敗した場合の次のコードを示しています
つまり、semop は EINTR で失敗します。man ページは、semop() システム コールがシグナルによって中断されたことを示しています。
私の質問は、このエラーを安全に無視して sem_acquire を再試行できるかどうかです。
編集:私はこの問題を誤解しています。以下に投稿した説明を参照してください。
ラジ
multithreading - Delphi でスレッド セーフなリスト ラッパーを実装するにはどうすればよいですか?
2 つの Tstringlist と 1 つの TClassList を維持するリスト ラッパーがあります。
次のように、これをスレッドセーフにする必要があります。
- 同時書き込みは許可されていません (何らかの待機状態に入る必要があります)
- 書き込み中の読み取り (またはその逆) は許可されていません (何らかの待機状態に入る必要があります)。
- 同時読み取りが許可されています
どうすればこれを行うことができるかについてのアイデアはありますか? 私の直感では、クリティカル セクション以上のもの、おそらくセマフォまたは「使用カウンター」、おそらくこれらの 1 つとCSが必要であることがわかります。
英語での全体的なアプローチから疑似コード、デルファイの実装、または外部リンクまで、どこから始めればよいのかよくわかりません。
queue - POSIXセマフォのみを使用してウェイクアップ待機レースを回避することは可能ですか?良性ですか?
POSIXセマフォを使用して、キューを表すファイルからのアトミックなgetおよびputを管理したいと思います。完全に無関係なプロセスがキューを共有できるように、ファイルシステムに名前を付ける柔軟性が必要です。この計画ではpthreadが除外されていると思います。名前付きのposixセマフォは、すべてのプロセスが認識できるものをファイルシステムに配置するのに最適ですが、標準のCondWaitプリミティブが見つかりません。
CondWaitがプロセスによって呼び出されると、アトミックにsemに投稿され、condを待機します。他のプロセスがcondにポストするとき、待機中のプロセスは、semもアトミックにデクリメントできる場合にのみウェイクアップします。の代替
このプロセスが待機する直前に、他のプロセス信号が競合状態になるという競合状態が発生します。
並行プログラミングを行うことはほとんどないので、SOに尋ねると思いました。条件変数に標準のPOSIXカウントセマフォを使用する場合、このレースは良性である可能性がありますか?
誰かがより大きなコンテキストを必要とする場合に備えて、シェルスクリプトから呼び出すことができるアトミックキューのgetおよびput操作を構築しています。
unix - System V と Posix セマフォの違い
System V と Posix セマフォの使用のトレードオフは何ですか?
php - PHP が複数のビデオを呼び出して、mencoder を介して一度に変換します。どうすれば制限できますか?
最近ビデオ スクリプトを新しいサーバーにインストールしましたが、(mencoder を介して) 1 つのビデオの変換を開始し、終了する前に別のビデオを変換しようとするため、4+ を変換しようとします。同時にサーバーがシャットダウンします。スクリプト開発者は次のように述べています。
「各ビデオを PHP バックグラウンド プロセスで変換します。サーバー上の PHP バックグラウンド プロセスの数を制限し、それらをキューに入れる方法があるかもしれません。」
それで、これはどのように行われますか?
よろしく
delphi - プログラムの別のインスタンスがすでに実行されているかどうかを確認するにはどうすればよいですか?
プログラムの1つのインスタンスが実行されているかどうかを確認するにはどうすればよいですか?私はデータファイルでこれを行うことができると思いましたが、それは面倒です:(
一度に1つのインスタンスのみを開いてほしいので、これを実行したいと思います。
javascript - Javascript セマフォ / テスト アンド セット / ロック?
アトミックなテスト アンド セット、セマフォ、Javascript のロックなどはありますか?
カスタムプロトコルを介して非同期バックグラウンドプロセスを呼び出すjavascriptがあります(バックグラウンドプロセスは文字通り、ブラウザとは無関係の別のプロセスで実行されます)。競合状態に陥っていると思います。テストとセットの間でバックグラウンド プロセスが返され、javascript 側で問題が発生します。実際のセマフォにするには、テストと設定の操作が必要です。
バックグラウンド プロセスを検出してキューに入れようとする JavaScript コードは次のとおりです。
Call は、キューイングを実装するシングルトンです。外部プロセスを呼び出したい人は誰でも Call.call("something") を行います。
何か案は?