سؤال

هل هناك أي أسباب معروفة لـ Sigprocmask () إلى segfault عند استخدامها في تطبيق متعدد مؤشرات الترابط؟

لدي تطبيق ينشئ سلاسل مؤشرات ترابط متعددة باستخدام clone (). لقد قررت أنه لسبب ما عندما أستخدم sigprocmask ، فإنه segfaults (وليس طوال الوقت). من الخلف () يبدو أيضًا أن segfault يحدث عندما أستخدم sigprocmask () بعد siglongjmp ().

أيه أفكار؟

هل كانت مفيدة؟

المحلول

تحقق من الحجج الثانية والثالثة. إذا لم تكن فارغة ، فتأكد من أن كل منها مؤشر صحيح إلى أ sigset_t.

لاحظ أن sigprocmask() يتم تعريفه رسميًا فقط لعملية واحدة. يجب أن تستخدم عملية متعددة مؤشرات الترابط pthread_sigmask() بدلاً من ذلك ، الذي يأخذ نفس الوسائط على الرغم من أنه يعيد رمز الخطأ بدلاً من استخدامه errno.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top