Next: Ostatní funkce
Up: Implementace
Previous: ``Vary features''
Úklid bucketů od ``přestárlých'' záznamů je prováděn samostantým threadem,
ve kterém je spuštěna funkce:
-
- void sg_cleaner(void);
a který je inicializován ve funkci sg_init.
Tento děj probíhá opakovaně ve dvou fázích:
- 1.
- Čistící cyklus, při kterém jsou sekvenčně procházeny všechny záznamy, kdy u
každého je zjištěn jaký čas uplynul od posledního přístupu a pokud tato hodnota
překročí hodnotu určenou sg_entry_max_age * sg_cleaner_agefactor (oba
parametry jsou konfigurovatelné), pak je zkoumaný záznam smazán. Součástí této
fáze je také spočtení aktuální velikosti a počet záznamů v každém bucketu.
- 2.
- Po skončení čistícího cyklu thread čeká dobu sg_cleaner_cycle (také konfigurovatelné),
poté je opět aktivován čistící cyklus.
V každé fázi thread kontroluje globální proměnnou pet.shutdown, která signalizuje,
že má okamžitě ukončit svou funkci.
Stanislav Pavlicek
2000-06-12