में लटका हुआ है क्योंकि मेरे पास एक एसिंक्रोनस (धारावाहिक) कार्यकर्ता कतार के अंदर एक लंबा चल रहा कार्य है। मुझे पता है कि कभी-कभी यह फ़ंक्शन किसी विशेष ओपनसीवी कॉल के अंदर लटकता है। किसी कारण से यह लटका मुख्य धागे को लटका भी दे रहा है। जब रुक कर और डिबग मोड में प्रवेश मैं देख रहा हूँ एक डिबग मोड और फिर इस में (पंक्ति) मुख्य थ्रेड परआईओएस semaphore_wait_trap मुख्य धागे पर यूआई
semaphore_wait_trap()
करने के लिए कॉल
मैं फांसी धागा निलंबित कर सकते हैं (मेरे कार्यकर्ता कतार) है कि वहाँ जाल दूर चला जाता है और जीयूआई फोन पर एक बार फिर उत्तरदायी हो जाता है।
कार्यकर्ता धागे को रोकने के बाद जीयूआई 1-2 सेकंड के लिए उत्तरदायी है (मुझे संदेह है कि यह धागा फिर से सक्रिय हो जाता है) और फिर यूआई एक बार फिर उत्तरदायी नहीं हो जाता है।
यह धागा मुख्य थ्रेड के लिए कोई dispatch_sync()
कॉल करता है/कतार
क्या यह संभव है कि आईओएस मुख्य थ्रेड रुक जाता है ("जाल" यह), क्योंकि कार्यकर्ता लंबी चलने वाली है?
क्या मैं इसे ब्लॉक को हटाने के लिए मजबूर कर सकता हूं ??
मैं डीबग मोड स्टैक की कुछ प्रिंट स्क्रीन जोड़ रहा हूं।
और फांसी धागा:
फांसी कतार निलंबन से पहले
और रोकने पर और बुरा कतार निलंबित करने के बाद:
क्या आप "pixtr" या तृतीय पक्ष उत्पाद है? । अगर इसकी तीसरी पार्टी मैं इसे अपने यूआई से अलग करने पर विचार करूँगा यह देखने के लिए कि क्या समस्या –
यहां पर बहुत कुछ नहीं है (विशेष रूप से, मुझे नहीं पता कि 'add_blob' में क्या है), तो मेरे पास सबसे अच्छा अनुमान है । मेरा संदेह यह है कि आप 'cvFloodFill' में गलत झंडे गुजर रहे हैं और इससे GPU को लॉक करना बंद हो जाता है। चूंकि यूआईकिट भी स्क्रू की गणना करने के लिए जीपीयू चाहता है (डीवाईट्रांसपोर्ट जीपीयू गणना से संबंधित एक निजी ढांचा है), यह यूपीकिट को जीपीयू उपलब्ध होने के लिए इंतजार कर रहा है। –