سؤال

الكود الخاص بي معلق فيرريت مع المكدس التالي:

libc.so.6.1::___lll_lock_wait
libc.so.6.1::fwrite

يبدو أن هذا يحدث في سولاريس.

الشيء غير الصحيح فقط الذي يمكنني التفكير فيه هو أن الكود قد يحاول القيام بعمل FCLOSE متوازي على نفس مؤشر الملف الذي يتم استخدامه للقيام بالكتاب. إذا حدث FCLOSE الموازي ، فهل سيؤدي ذلك إلى هذا النوع من المكدس؟

لكنني لست متأكدًا مما إذا كانت مكالمة FCLOSE المتوازية قد حدثت بالفعل أم لا؟

ماذا يمكن أن تكون المشكلة هنا؟

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

المحلول

يبدو أن شيئًا ما قد انفجر في مكان ما. تستخدم العمليات في الملف* عادةً قفلًا داخليًا ليكون آمنًا. من المحتمل أن تكون قد فعلت شيئًا لاستدعاء السلوك غير المكتسب في مكان ما. على سبيل المثال ، أفسدت الكومة ، أو الكتابة فوق شيء مهم (مثل ملف) ، أو تم إغلاق الملف* - وفي هذه الحالة لا يمكنك الاعتماد على أي شيء عقلاني ليحدث إذا واصلت استخدامه.

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