Я использую блокировку чтения / записи для создания многопоточной программы, но когда я тестирую ее, она всегда застревает в блокировке записи, даже когда используется только один поток. Я правильно использую эту блокировку? ...
pthread_rwlock_t rwlock;
...
for(...){
pthread_rwlock_rdlock(&rwlock);
//bunch of if statements to determine a value
pthread_rwlock_unlock(&rwlock);
pthread_rwlock_wrlock(&rwlock);
//add new values to a global array;
pthread_rwlock_unlock(&rwlock);
...}
Он всегда застревает в этом pthread_rwlock_wrlock (); и я не могу понять, почему, учитывая, что нет даже другого потока, который может обладать блокировкой.
Спасибо!