PR_SET_TIMERSLACK(2const)

الاسم
PR_SET_TIMERSLACK - ضبط قيمة "السماحية الحالية" للمؤقت للخيط المستدعي

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <linux/prctl.h>  /* تعريف ثوابت PR_* */
#include <sys/prctl.h>

int prctl(PR_SET_TIMERSLACK, unsigned long slack);

الوصف
لكل خيط قيمتا سماحية مؤقت مرتبطتان: قيمة "مبدئية" وقيمة "حالية". تضبط هذه العملية قيمة "السماحية الحالية" للمؤقت للخيط المستدعي. slack هي قيمة طويلة غير موقعة في النطاق [1L, ULONG_MAX]. إذا كانت قيمة النانوثانية المقدمة في slack أكبر من الصفر، فتُضبط القيمة "الحالية" على هذه القيمة. إذا كان slack هو 0L، فتُعاد ضبط سماحية المؤقت "الحالية" إلى قيمة سماحية المؤقت "المبدئية" للخيط.

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

انتهاءات المؤقت المتأثرة بسماحية المؤقت هي تلك المضبوطة بواسطة select(2)، pselect(2)، poll(2)، ppoll(2)، epoll_wait(2)، epoll_pwait(2)، clock_nanosleep(2)، nanosleep(2)، و futex(2) (وبالتالي دوال المكتبة المنفذة عبر futexes، بما في ذلك pthread_cond_timedwait(3)، pthread_mutex_timedlock(3)، pthread_rwlock_timedrdlock(3)، pthread_rwlock_timedwrlock(3)، و sem_timedwait(3)).

لا تُطبق سماحية المؤقت على الخيوط المجدولة تحت سياسة جدولة زمن حقيقي (انظر sched_setscheduler(2)).

عند إنشاء خيط جديد، تُجعل قيمتا سماحية المؤقت مماثلتين للقيمة "الحالية" للخيط المنشئ. بعد ذلك، يمكن للخيط ضبط قيمة سماحية المؤقت "الحالية" الخاصة به عبر PR_SET_TIMERSLACK. لا يمكن تغيير القيمة "المبدئية". قيم سماحية المؤقت لـ init(1) (PID 1)، سلف جميع العمليات، هي 50,000 نانوثانية (50 ميكروثانية). تُورث قيمة سماحية المؤقت بواسطة ابن يُنشأ عبر fork(2)، وتُحتفظ بها عبر execve(2).

قيمة الإرجاع
عند النجاح، يُعاد الرقم 0. وعند حدوث خطأ، يُعاد الرقم -1، ويُضبط errno للإشارة إلى الخطأ.

المعايير
لينكس.

التاريخ
لينكس 2.6.28.

انظر أيضًا
prctl(2)، PR_GET_TIMERSLACK(2const)، proc_pid_timerslack_ns(5)

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

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

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