Каждый поток по необходимости требует своего собственного стека;однако, как правило, есть только одна куча на процесс.Когда поток уничтожается, не существует автоматического механизма для освобождения памяти, выделенной в куче.Все, что у вас заканчивается, - это утечка памяти.
Как правило, избегайте использования pthread_cancel
, поскольку трудно обеспечить безопасную работу pthread_cancel
.Скорее встроите некоторый механизм, где вы можете передать сообщение потоку, чтобы уничтожить себя (после освобождения любых ресурсов, которыми он владеет).