यदि मेरे पास प्रारंभिक pthread_barrier_t है, तो इसे नष्ट करना सुरक्षित कब है? क्या निम्नलिखित उदाहरण सुरक्षित है?एक पठार बाधा को नष्ट करने के लिए सुरक्षित कब है?
pthread_barrier_t barrier;
...
int rc = pthread_barrier_wait(b);
if (rc != PTHREAD_BARRIER_SERIAL_THREAD && rc != 0){
perror("pthread_barrier_wait");
exit(1);
}
if (id == 0){
if(pthread_barrier_destroy(&(threads[t_root].info.tmp_barrier))){
perror("pthread_barrier_destroy");
exit(1);
}
}
आपके उत्तर की अंतिम वाक्य गलत है। प्रति POSIX, यह यूबी है: "परिणाम अनिश्चित हैं यदि pthread_barrier_destroy() को बाधा पर अवरुद्ध किया गया है, या यदि इस फ़ंक्शन को एक प्रारंभिक बाधा के साथ बुलाया जाता है।" (Http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_destroy.html) –