問題タブ [atomic-swap]

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 投票する
2 に答える
405 参照

c++ - c++0xアトミックおよびスレッドのGCCフラグ

私はC++アトミックとスレッドのこの基本的な例をコンパイルしようとしましたが、main.cppファイルをコンパイルすると、gccはいくつかのstdlibエラーをスローします-これは私のコードとは無関係のようです。

main.cpp

私が使用している完全なコード:https ://github.com/preshing/AcquireRelease

gccエラーメッセージは次のとおりです。

これが私が使用するコマンドです:g++ -std=c++0x -pthread main.cpp

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

c++ - 原子値が指定された値未満であるというチェック前提条件での原子インクリメントはありますか?

新しい標準 C++ アトミック インクリメント操作では、値をインクリメントする前にチェック前提条件を使用して、アトミック値が指定された値よりも小さいか?

次のコードよりも簡単かつ迅速に実行できますか?

compare_exchange_weak の仕組みがわからない場合: compare_exchange_weak は val を読み取り、old_val と比較し、等しくない場合は val を old_val に保存します。等しい場合は、new_val を val に保存します。

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

winapi - 2 つの符号なし 32 ビット変数 (ULONG) をアトミックに交換する正しい方法は何ですか?

2 つの符号付き32 ビット変数 (LONG)を交換できるInterlockedExchange関数を見つけました。

しかし、Windows で 2 つの符号なし32 ビット変数 (ULONG)を原子的に交換する正しい方法は何ですか?

Microsoft が提供する関数を使用してそれを行う明確な方法がわかりません。

(マイクロソフトは、符号なし整数を符号付き整数に変換した結果は、場合によっては実装定義であると私に言っていることも考慮してください。)

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

clojure - Clojure ウォッチ コール内で Atom の更新がハングする

ファイルシステムの変更について特定のディレクトリを監視する状況があります。そのディレクトリ内の特定のファイルが変更された場合、それを再度読み取り、既存のキャッシュされた情報をいくつか添付して、atom.

関連するコードは次のようになります

これは最終的にローカルで正常に機能しますが、サーバーに展開すると、swap!呼び出しが途中でハングします。

を介してデバッグしようとしましたがprintln、それは私に言いました

  1. ファイルシステム トリガー起動されています。
  2. swap!関数を複数回実行していない
  3. 監視対象のファイルが開かれ、解析されています
  4. ファイルのいくつかのエントリが処理されていますが、その処理はエントリで停止します111(前のエントリと大きく異なるようには見えません)。
  5. 更新は完了しないため、その古い値がatom保持されます
  6. このイベントがハングした後、ファイルシステム イベントは発生しません。

これは、どこかのメモリの問題か、Clojure-Watch (または基礎となる FS-watching ライブラリ) のバグであると思われます。

それを修正したり、さらに診断したりする方法はありますか?