次の方法で共有


IUMSThreadProxy::EnterHyperCriticalRegion メソッド

ハイパー クリティカル領域に入るときに呼び出します。 ハイパー クリティカル領域内のコードが実行されている間に生じたブロック操作をスケジューラは一切監視しません。 つまり、UMS スレッドでは、ブロックを伴う関数呼び出し、ブロックの原因となるロック取得、ページ フォールト、スレッドの中断、カーネルの非同期プロシージャ呼び出し (APC) などが発生しても、スケジューラが再度呼び出されることはありません。

virtual int EnterHyperCriticalRegion() =0;

戻り値

新しい深度のハイパー クリティカル領域。 ハイパー クリティカル領域は再入可能です。

解説

このような領域で呼び出すメソッドと、取得するロックに関しては、スケジューラは細心の注意を払う必要があります。 この領域内に存在するコードがロック状態でブロックされた場合、仮にそのロックが、スケジューラによるスケジューリングを必要とするいずれかの要素が保持するものだとすると、デッドロックに陥る可能性があります。

必要条件

ヘッダー: concrtrm.h

名前空間: Concurrency

参照

参照

IUMSThreadProxy 構造体

IUMSThreadProxy::ExitHyperCriticalRegion メソッド