Можно ли создать поток с помощью pthread_create
и безопасно использовать std::mutex
?
Я бы подумал, что если std::mutex
реализован как pthread_mutex_t
, тогда это будет хорошо, но я не вижу этого документально зарегистрированного
Например:
#include <pthread.h>
#include <mutex>
namespace {
std::mutex global_lock;
}
void* thread_func(void* vp) {
// std::mutex used in thread spawned with pthread_create
std::lock_guard<std::mutex> guard(global_lock);
// critical section
return nullptr;
}
int main() {
pthread_t tid;
pthread_create(&tid, nullptr, thread_func, nullptr);
pthread_join(tid, NULL);
}
Кстати, я запускаю Debian Wheezy.