मान लीजिए कि कुछ हालत चर "cond" एक mutex चर "mutex" से जुड़ा हुआ है। यदि पर कॉल करने के बाद cond
पर कोई थ्रेड सो रहा है, और mutex
लॉक होने वाला कोई अन्य थ्रेड समाप्त हो गया है, तो क्या इससे कोई फर्क पड़ता है कि pthread_mutex_unlock(&mutex)
पर कॉल करने से पहले या उसके बाद pthread_cond_signal(&cond)
पर थ्रेड कॉल करता है? क्या इसे म्यूटेक्स को अनलॉक करने की भी आवश्यकता है यदि यह pthread_cond_signal(&cond)
पर कॉल करता है, क्योंकि नींद धागा वैसे भी mutex प्राप्त करेगा?एक हालत परिवर्तनीय सिग्नलिंग (pthreads)
संपादित करें: https://computing.llnl.gov/tutorials/pthreads/#ConVarOverview के अनुसार, ") pthread_cond_signal (बुला के बाद म्युटेक्स अनलॉक करने के लिए एक मिलान pthread_cond_wait() दिनचर्या को पूरा करने की अनुमति नहीं जा सकता है और (यह अवरोधित रहेंगे)।" मुझे लगता है कि, अनलॉकिंग, और शायद बाद में, आवश्यक है।
+1 अपने स्वयं के प्रश्न का उत्तर देने के लिए। –