table of contents
| set_tid_address(2) | System Calls Manual | set_tid_address(2) |
الاسم¶
set_tid_address - ضبط المؤشر لمعرف الخيط
المكتبة¶
مكتبة سي المعيارية (libc، -lc)
موجز¶
#include <sys/syscall.h> /* تعريف ثوابت SYS_* */ #include <unistd.h>
pid_t syscall(SYS_set_tid_address, int *tidptr);
ملاحظة: لا توفر glibc غلافًا لـ set_tid_address()، مما يستلزم استخدام syscall(2).
الوصف¶
لكل خيط، يحافظ النواة على سمتين (عناوين) تُدعيان set_child_tid و clear_child_tid. تحتوي هاتان السمتان على القيمة NULL مبدئيًا.
- set_child_tid
- إذا بدأ خيط باستخدام clone(2) مع العلم CLONE_CHILD_SETTID، يُضبط set_child_tid إلى القيمة الممررة في وسيط ctid لتلك الاستدعاء النظامي.
- عند ضبط set_child_tid، أول شيء يفعله الخيط الجديد هو كتابة معرف خيطه في هذا العنوان.
- clear_child_tid
- إذا بدأ خيط باستخدام clone(2) مع العلم CLONE_CHILD_CLEARTID، يُضبط clear_child_tid إلى القيمة الممررة في وسيط ctid لتلك الاستدعاء النظامي.
يضبط الاستدعاء النظامي set_tid_address() قيمة clear_child_tid للخيط المستدعي إلى tidptr.
عندما ينتهي خيط لا تكون قيمة clear_child_tid فيه NULL، فإنه، إذا كان الخيط يشارك الذاكرة مع خيوط أخرى، يُكتب 0 في العنوان المحدد في clear_child_tid وتُنفذ النواة العملية التالية:
futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);
تأثير هذه العملية هو إيقاظ خيط واحد يُنفذ انتظار futex على موقع الذاكرة. تُتجاهل الأخطاء من عملية إيقاظ futex.
قيمة الإرجاع¶
تُرجع set_tid_address() دائمًا معرف خيط المستدعي.
الأخطاء¶
تنجح set_tid_address() دائمًا.
المعايير¶
لينكس.
التاريخ¶
لينكس 2.5.48.
التفاصيل المقدمة هنا صالحة منذ لينكس 2.5.49.
انظر أيضًا¶
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 8 فبراير 2026 | صفحات دليل لينكس (لم تصدر بعد) |