Самьюэл Алекс
Шрифт:
Обратите внимание на то, что в функции
4.3.1. Обработчики очистки
Функции очистки ключей гарантируют, что в случае завершения или отмены потока не произойдет потерн ресурсов. Но иногда возникает необходимость в создании функции, которая будет связана не с ключом, дублируемым между потоками, а с обычным ресурсом. Такая функция называется обработчиком очистки.
Обработчик очистки вызывается при завершении потока. Он принимает один аргумент типа
Обработчик очистки — это временная мера, требуемая только тогда, когда поток завершается или отменяется, не закончив выполнять определенный участок кода. При нормальных обстоятельствах ресурс должен удаляться явно.
Для регистрации обработчика следует вызвать функцию
В листинге 4.8 показан фрагмент программы, в котором обработчик очистки применяется для удаления динамического буфера при завершении потока.