के लिए इंतजार क्यों आप थोड़ी देर के पाश की जरूरत क्यों आप थोड़ी देर के पाश यहाँ की क्या ज़रूरत है आप इस कोडजबकि एक शर्त चर
pthread_mutex_lock(&cam->video_lock);
while(cam->status == WAIT_DISPLAY) // <-- Why is this a 'while' and not an 'if'?
pthread_cond_wait(&cam->video_cond, &cam->video_lock);
pthread_mutex_unlock(&cam->video_lock);
मेरा प्रश्न है, कहो। pthread_cond_wait सिग्नलिंग थ्रेड सिग्नल cam_video_cond तक बस प्रतीक्षा करें? ठीक है, मुझे पता है तुम एक मामले कैम> स्थितिWAIT_DISPAY के बराबर नहीं है जहां जब pthread_cond_wait कहा जाता है हो सकता है, लेकिन इस मामले में आप सिर्फ बल्कि का उपयोग करते समय की तुलना में एक अगर हालत के माध्यम से यह जांच कर सकता है।
क्या मुझे यहां कुछ याद आ रही है? की मेरी समझ pthread_cond_wait यह है कि अगर cam_video_cond संकेत नहीं दिया गया है तो यह अनंत के लिए प्रतीक्षा करता है। इसके अलावा, यह cam_video_lock म्यूटेक्स को बुलाए जाने पर अनलॉक करता है, लेकिन जब स्थिति को संकेत दिया जाता है, तो लौटने से पहले, यह cam_video_lock को बंद करता है। क्या मैं सही हू?
वही सवाल, http://www.unix.com/programming/149791- शर्त- variables।एचटीएमएल – MetallicPriest
[नकली wakeup] [http://en.wikipedia.org/wiki/Spurious_wakeup) –