Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Opisuje filtr synchronizacji, który używa mutex do kontrolowania dostępu do obiektu pamięci podręcznej, który jest współużytkowany przez wszystkie alokatory.
Składnia
template <class Cache>
class sync_shared
Parametry
pamięci podręcznej
Typ pamięci podręcznej skojarzony z filtrem synchronizacji. Może to być cache_chunklist, cache_freelistlub cache_suballoc.
Funkcje składowe
| Funkcja składowa | opis |
|---|---|
| przydzielić | Przydziela blok pamięci. |
| Deallocate | Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji. |
| równa się | Porównuje dwie pamięci podręczne pod kątem równości. |
Wymagania
Nagłówek:<alokatory>
Przestrzeń nazw: stdext
sync_shared::przydziel
Przydziela blok pamięci.
void *allocate(std::size_t count);
Parametry
liczba
Liczba elementów w tablicy do przydzielenia.
Wartość zwracana
Wskaźnik do przydzielonego obiektu.
Uwagi
Funkcja składowa blokuje mutex, wywołuje cache.allocate(count)metodę , odblokuje mutex i zwraca wynik wcześniejszego wywołania metody cache.allocate(count).
cache reprezentuje bieżący obiekt pamięci podręcznej.
sync_shared::d eallocate
Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Wskaźnik do pierwszego obiektu, który ma zostać cofnięty z magazynu.
liczba
Liczba obiektów do cofnięcia przydziału z magazynu.
Uwagi
Ta funkcja składowa blokuje mutex, wywołuje cache.deallocate(ptr, count)metodę , gdzie cache reprezentuje obiekt pamięci podręcznej, a następnie odblokuje mutex.
sync_shared::equals
Porównuje dwie pamięci podręczne pod kątem równości.
bool equals(const sync_shared<Cache>& Other) const;
Parametry
pamięci podręcznej
Typ pamięci podręcznej skojarzony z filtrem synchronizacji.
Inne
Pamięć podręczna do porównania pod kątem równości.
Wartość zwracana
true jeśli wynik cache.equals(Other.cache), gdzie cache reprezentuje obiekt pamięci podręcznej, to true; w przeciwnym razie , false.