問題タブ [rwlock]

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 に答える
96 参照

c++ - この rwLock の実装に何か問題がありますか?

私のプログラムはデッドロックしています。なぜなら、デバッガーで実行しても動かないことを考えると、私の最初の疑いは私のrwLockです。標準ライブラリのみを使用したかったので、独自のバージョンを作成しました- -rwLock は C++17 まで含まれていないと思います。これは私が通常行うようなことではありません。

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

rust - メソッドから独立して RWLockReadGuard を返す

タイプのオブジェクトがあります

そして、私はある種の参照を取ることになっているメソッドを持っていますSessionData

Rocket (Rust の Web フレームワーク) を使用していますが、Rocket によって呼び出されるため、メソッドを直接呼び出すことはできません。ただし、ハンドラーに渡されるオブジェクトを作成する実装を提供できます。次のようになります。

RwLockハンドラーに既にロックされているオブジェクトを渡す必要があるため、直接返すことは避けたいと思います。ただし、どちらもスコープ外になる にRwLockReadGuard依存しているため、参照または を返すことはできません。RwLock

Arc<RwLock<SessionData>>代わりに、 を含み、このロックへのロック ガードを含み、オブジェクトへの参照解除を行う、ある種の自己完結型を作成しようとしていSessionDataます。

これまでのところ、次のいくつかの組み合わせを試しました。

  • とを含むSessionオブジェクトArc<RwLock<SessionData>>RwLockReadGuard<SessionData>
  • owning-refライブラリのArc<RwLock<SessionData>>およびを含むオブジェクト。RwLockReadGuardRef<SessionData>
  • owning-refライブラリのOwnedHandle型を使用するオブジェクト。

しかし、やりたいことができておらず、いろいろな一生の借金問題などにぶつかっています。

それが指しているオブジェクトへのロックとロックガードの両方を含む一種の自己完結型の「ハンドル」のようなオブジェクトを作成することはまったく可能ですか?

これは似ていますが、ミューテックスの下にある値のサブ値への参照を返す方法で説明されている状況とは少し異なります。. そこでは、 はMutexGuardRef内部的に に依存しており、 (または) が範囲外になるMutexと存在できません。同様の動作を実現するには、my を含む構造体を渡してから、メソッド内でロックを行う必要があります。これで問題ありませんが、さらに一歩進んで、独立していて として機能する構造体を渡して、手動でロックする必要がなくなるかどうか疑問に思っています。MutexMyStructRwLockRwLockGuard

RwLock基本的に、のロックをクライアントから値のプロバイダーに移動したいと考えています。