pthread_mutex и завершение процесса - PullRequest
0 голосов
/ 04 марта 2019

Перед использованием pthread_mutex_t должен быть вызван pthread_mutex_init (), и после того, как он больше не требуется, он должен быть уничтожен с помощью pthread_mutex_destroy ().

Мой вопрос: что произойдет, если мой процесс завершится до того, как он сможет вызвать pthread_mutex_destroy?(), например, SIGKILL, SIGINT или SIGABORT?Возможно ли, что какой-то ресурс протечет?

Тот же вопрос относится и к pthread_cond_init / destroy.

1 Ответ

0 голосов
/ 04 марта 2019

Не на любой платформе, которую вы, вероятно, будете использовать.Такие объекты, как мьютексы и условные переменные, являются просто кусками памяти в адресном пространстве процесса.Когда процесс завершается, его адресное пространство перестает существовать.Поэтому утечка любых ресурсов невозможна.

Ресурсы, совместно используемые процессами, являются более сложными.Хотя ресурсы не будут утекать, они все еще могут существовать и даже могут использоваться другими процессами.

...