atomic

    2

    1答えて

    Atomics.store/loadメソッド(および他のものは見えませんでした)は、Float32Arrayをサポートしていません。 これは、互換性の理由からFloat64Arrayもサポートしていないという事実と一致することを読んでいます(一部のコンピュータではサポートされていません)。 私はこれが愚かだと言う事実とは別に、これは私が使用したいフロートをすべて符号なしのintにキャストしなければ

    1

    3答えて

    オーバーフローから安全な原子整数に基づく参照カウントについて考えていました。どうやってするの? このようなオーバーフローが現実的な問題であるかどうかに注目しません。実際に重要ではないにしても、タスクそのものに興味がありました。 例 参照カウントの実装例は、Boost.Atomic例として示されています。オブジェクトに新しい参照のみを形成することができる。説明を参照カウンタは常にmemory_ord

    1

    1答えて

    例えば、 atomic_int test(void) { atomic_int tmp = ATOMIC_VAR_INIT(14); tmp = 47; // Looks like atomic_store atomic_int mc; // Probably just uninitialised data memcpy(&mc,&tmp,s

    -1

    1答えて

    最初は自分のコードでblockIdx.xを使用しましたが、削除する代わりにグローバル値を使用して、blockidx.xではなくそのブロックで使用します。私のコードが大きすぎて、大きな入力サイズで実行するとハングするので、私は助けてくれると思った。私はカウンターを原子的にインクリメントしますが、コードを実行するとハングします。誰かが私のコードを見て、私が何か間違っているかどうかを見ることができますか

    0

    1答えて

    デッドロックのあるコードがあります。私はそれを解決する方法のいくつかの解決策について考え、それらの一つがアトミックに次の操作を行うことだった。私はcouldn以来、私は、pthreadではアトミックこれを実行することが可能であるかどうかわからないんだけどしかし if(!ready) pthread_cond_wait(&(cond[0]), &(lock[0])); ドキュメントの中

    1

    1答えて

    MVCCスナップショット分離のデータベースタイムスタンプを生成する必要があります。一般的方法使用:。次のように「トランザクションアクションはSI-TMで実装され TMは、BEGIN:トランザクションの論理スナップショットは、グローバルタイムスタンプカウンタ原子インクリメント を使用して一意のタイムスタンプを取得することによって 生成されます。 " 何百ものコアを持つシステムでこのアプローチを使用す

    3

    1答えて

    現在、私たちが正しいスレッドにいるかどうか、そしてイベントハンドラのサブスクライバがあるかどうかを確認するためにInterlocked.CompareExchangeメソッドを使用しています。これらの条件の両方が真である場合、イベントはオフになります。私は次のコードでこれを行います: Interlocked.CompareExchange(ref MyEventHandler, null, nul

    1

    2答えて

    std::atomic<int> cnt = {2}; thread 1: doFoo(); if (cnt.fetch_sub(1, std::memory_order_relaxed) == 1) { doBazz(); } thread 2: doBar(); if (cnt.fetch_sub(1, std::memor

    2

    1答えて

    私は原子的にも非アトミックにも同じメモリ位置を操作したいと思います。 はのは、私がintのように、単純型での作業、特にstd::atomic<T>::is_lock_free()戻りtrue、そのsizeof(T) == sizeof(std::atomic<T>)ことだと仮定しましょう。 私はreinterpret_castが働くべきであると考えた: std::atomic<int> x; i

    0

    1答えて

    ロックの実装でfetchとadd(アトミック操作)を使用する方法を理解しようとしています。 私はこの記事をWikipediaで見つけましたが、私はそれが他の少なくとも1つの場所で重複していることがわかりました。実装は意味をなさないし、バグを含むように見える。もちろん、私は微妙な点を見逃して、何が記述されているのかを実際に理解していない可能性があります。彼らは最初LockInitを行うの記事によるh