Приостановить pthreads без использования условия
Я хочу приостановить работу pthreads, но, по-видимому, такой функции, как pthread_suspend, не существует. Я где-то читал о приостановке pthreads с использованием мьютексов и условий и использовал его следующим образом:
#include <pthread.h>
class PThread {
public:
pthread_t myPthread;
pthread_mutex_t m_SuspendMutex;
pthread_cond_t m_ResumeCond;
void start() {
pthread_create(&myPthread, NULL, threadRun, (void*)this );
}
Thread() { }
void suspendMe() {
pthread_cond_wait(&m_ResumeCond,&m_SuspendMutex);
}
void resume() {
pthread_cond_signal(&m_ResumeCond);
}
};
но я не понимаю, почему нам нужен и мьютекс, и условие для приостановки и возобновления pthread. Можно ли приостановить и возобновить его без использования условий?