Функцию потока следует проектировать так, чтобы поток завершался только после того, как она возвращает управление. Это единственный способ, гарантирующий кор ректную очистку всех ресурсов, принадлежавших Вашему потоку. При этом:
любые С++-объекты, созданные данным потоком, уничтожаются соответству ющими деструкторами;
система корректно освобождает память, которую занимал стек потока;
система устанавливает код завершения данного потока (поддерживаемый объ ектом ядра "поток») — его и возвращает Ваша функция потока;
счетчик пользователей данного объекта ядра "поток" уменьшается на 1