sync_shared クラス
すべてのアロケーターによって共有されているキャッシュ オブジェクトへのアクセスを制御するためにミューテックスを使用する同期フィルターを表します。
構文
template <class Cache>
class sync_shared
パラメーター
キャッシュ
同期フィルターに関連付けられているキャッシュの型。 cache_chunklist
、cache_freelist
、または cache_suballoc
を指定できます。
メンバー関数
メンバー関数 | 説明 |
---|---|
allocate | メモリのブロックを割り当てます。 |
deallocate | 指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。 |
equals | 2 つのキャッシュが等しいかどうかを比較します。 |
要件
ヘッダー: <allocators>
名前空間: stdext
sync_shared::allocate
メモリのブロックを割り当てます。
void *allocate(std::size_t count);
パラメーター
count
割り当てられる配列内の要素の数。
戻り値
割り当てられたオブジェクトへのポインター。
解説
メンバー関数はミューテックスをロックし、cache.allocate(count)
を呼び出し、ミューテックスをロック解除し、以前の cache.allocate(count)
の呼び出しの結果を返します。 cache
はキャッシュ オブジェクトを表します。
sync_shared::d eallocate
指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。
void deallocate(void* ptr, std::size_t count);
パラメーター
ptr
記憶域から割り当てを解除される最初のオブジェクトへのポインター。
count
記憶域から割り当てを解除されるオブジェクトの数。
解説
このメンバー関数は、ミューテックスをロックし、cache.deallocate(ptr, count)
(cache
はキャッシュ オブジェクトを表す) を呼び出し、その後ミューテックスをロック解除します。
sync_shared::equals
2 つのキャッシュが等しいかどうかを比較します。
bool equals(const sync_shared<Cache>& Other) const;
パラメーター
キャッシュ
同期フィルターに関連付けられているキャッシュの型。
その他
等しいかどうかを比較するキャッシュ。
戻り値
cache.equals(Other.cache)
(cache
はキャッシュ オブジェクトを表す) の結果が true
の場合は true
、それ以外の場合は false
。