問題タブ [scoped-lock]

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

c++ - scoped_lock を使用して、相互排除でキューから packaged_task を抽出した後に実行する

scoped_lock を使用して 2 つのミューテックスをロックした後、キューから抽出されたタスクを実行する必要があります。問題は、タスクをキューから別のタスクにスワップしてから実行することです。これまでのところ、これが私の出発点です

しかし、タスクを変数に保存して後で実行することはできません。

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

c++ - scoped_lock のデストラクタを理解するには? cppreference は間違っていますか?

どうやって理解する[](auto&... __m) { (__m.unlock(), ...);?インラムダを理解していませ...ん。また、これがミューテックスを逆の順序で解放する方法もわかりません。

@HolyBlackCat が言うように、
(__m.unlock(), ...)を意味(__m1.unlock(),(__m2.unlock(), (__m3.unlock(), (...))))しますが、逆の順序でのロック解除は実装しません。

cppreference.com で:

scoped_lock オブジェクトが作成されたスコープから制御が離れると、scoped_lock は破棄され、ミューテックスは逆の順序で解放されます。

これを確認するために、次のような実験を行います。

では、cppreference は間違いを犯しますか?