Scroll to navigation

pthread_cleanup_push_defer_np(3) Library Functions Manual pthread_cleanup_push_defer_np(3)

الاسم

pthread_cleanup_push_defer_np, pthread_cleanup_pop_restore_np - دفع وسحب معالجات التنظيف لإلغاء الخيط مع حفظ نوع قابلية الإلغاء

المكتبة

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

موجز

#include <pthread.h>
void pthread_cleanup_push_defer_np(typeof(void (void *)) *routine,
                                   void *arg);
void pthread_cleanup_pop_restore_np(int execute);

متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

pthread_cleanup_push_defer_np(), pthread_cleanup_pop_defer_np():


_GNU_SOURCE

الوصف

هذه الدوال مماثلة لـ pthread_cleanup_push(3) و pthread_cleanup_pop(3)، باستثناء الاختلافات المذكورة في هذه الصفحة.

مثل pthread_cleanup_push(3)، تدفع pthread_cleanup_push_defer_np() الروتين routine إلى مكدس معالجات التنظيف للإلغاء الخاص بالخيط. بالإضافة إلى ذلك، تحفظ أيضًا نوع قابلية الإلغاء الحالي للخيط، وتضبط نوع قابلية الإلغاء إلى "مؤجل" (انظر pthread_setcanceltype(3))؛ يضمن هذا حدوث تنظيف الإلغاء حتى لو كان نوع قابلية الإلغاء للخيط "غير متزامن" قبل الاستدعاء.

مثل pthread_cleanup_pop(3)، تسحب pthread_cleanup_pop_restore_np() معالج التنظيف العلوي من مكدس معالجات التنظيف للإلغاء الخاص بالخيط. بالإضافة إلى ذلك، تستعيد نوع قابلية الإلغاء للخيط إلى قيمته في وقت pthread_cleanup_push_defer_np() المطابقة.

يجب على المستدعي ضمان إقران استدعاءات هذه الدوال داخل نفس الدالة، وعلى نفس مستوى التداخل المعجمي. تنطبق قيود أخرى، كما هو موصوف في pthread_cleanup_push(3).

هذا التسلسل من الاستدعاءات:


pthread_cleanup_push_defer_np(routine, arg);
pthread_cleanup_pop_restore_np(execute);

مكافئ لـ (لكنه أقصر وأكثر كفاءة من):


int oldtype;
pthread_cleanup_push(routine, arg);
pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);
...
pthread_setcanceltype(oldtype, NULL);
pthread_cleanup_pop(execute);

المعايير

جنو؛ ومن هنا جاءت اللاحقة "_np" (غير منقول) في الأسماء.

التاريخ

glibc 2.0

انظر أيضًا

pthread_cancel(3), pthread_cleanup_push(3), pthread_setcancelstate(3), pthread_testcancel(3), pthreads(7)

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

17 مايو 2025 صفحات دليل لينكس (لم تصدر بعد)