Не знаю. Cтоит ли ожидать «подводных камней» в данном случае. Не останется ли какой мусор который обычно удаляется нормально через pthread_mutex_destroy?
Условный пример:
typedef struct foo {
pthread_mutex_t lock;
...
} foo_t;
foo_t *
foo_new ()
{
... allocate memory
pthread_mutex_init (&foo->lock);
return (foo);
}
void
foo_free (foo_t *foo)
{
... something check
pthread_mutex_lock (&foo->lock);
free (foo);
}
Спасибо!