pthread_exit(3)

الاسم
pthread_exit - إنهاء الخيط المستدعي

المكتبة
مكتبة مسالك POSIX (libpthread، -lpthread)

موجز
#include <pthread.h>

[[noreturn]] void pthread_exit(void *retval);

الوصف
تنهي الدالة pthread_exit() الخيط المستدعي وتُعيد قيمة عبر retval تكون (إذا كان الخيط قابلًا للانضمام) متاحة لخيط آخر في نفس العملية يستدعي pthread_join(3).

تُفرقع أي معالجات تنظيف أُنشئت بواسطة pthread_cleanup_push(3) ولم تُفرقع بعد (بالترتيب العكسي لدفعها) وتُنفذ. إذا كان للخيط أي بيانات خاصة بالخيط، فبعد تنفيذ معالجات التنظيف، تُستدعى دوال المدمر المقابلة بترتيب غير محدد.

عند إنهاء خيط، لا تُحرر الموارد المشتركة بين العمليات (مثل الميوتكسات ومتغيرات الشرط والإشارات وواصفات الملفات)، ولا تُستدعى الدوال المسجلة باستخدام atexit(3).

بعد إنهاء آخر خيط في عملية، تُنهى العملية كما لو استُدعيت exit(3) بحالة خروج صفرية؛ وبالتالي تُحرر الموارد المشتركة بين العمليات وتُستدعى الدوال المسجلة باستخدام atexit(3).

قيمة الإرجاع
لا تعود هذه الدالة إلى المستدعي.

الأخطاء
تنجح هذه الدالة دائمًا.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
pthread_exit() | سلامة الخيوط | MT-Safe

المعايير
POSIX.1-2008.

التاريخ
POSIX.1-2001.

ملاحظات
يؤدي إجراء return من دالة البدء لأي خيط غير الخيط الرئيس إلى استدعاء ضمني لـ pthread_exit()، باستخدام قيمة إرجاع الدالة كحالة خروج الخيط.

للسماح للخيوط الأخرى بمواصلة التنفيذ، يجب على الخيط الرئيس أن يُنهى باستدعاء pthread_exit() بدلاً من exit(3).

لا ينبغي أن تكون القيمة المشار إليها بواسطة retval موجودة على مكدس الخيط المستدعي، لأن محتويات ذلك المكدس غير محددة بعد إنهاء الخيط.

العلل
حاليًا، توجد قيود في منطق تنفيذ النواة لـ wait(2) على مجموعة خيوط متوقفة مع قائد مجموعة خيوط ميت. يمكن أن يظهر هذا في مشاكل مثل محطة مقفلة إذا أُرسلت إشارة توقف إلى عملية أمامية استدعى قائد مجموعة خيوطها بالفعل pthread_exit().

انظر أيضًا
pthread_create(3), pthread_join(3), pthreads(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.