pthread_spin_lock(3)

الاسم
pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock - قفل وفتح قفل الدوران

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

موجز
#include <pthread.h>

int pthread_spin_lock(pthread_spinlock_t *lock);
int pthread_spin_trylock(pthread_spinlock_t *lock);
int pthread_spin_unlock(pthread_spinlock_t *lock);

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

pthread_spin_lock(), pthread_spin_trylock():
    _POSIX_C_SOURCE >= 200112L

الوصف
الدالة pthread_spin_lock() تقفل قفل الدوران المشار إليه بـ lock. إذا كان قفل الدوران غير مقفل حاليًا، يكتسب الخيط المستدعي القفل فورًا. إذا كان قفل الدوران مقفلاً حاليًا بواسطة خيط آخر، يدور الخيط المستدعي، مختبرًا القفل حتى يصبح متاحًا، وعندها يكتسب الخيط المستدعي القفل.

استدعاء pthread_spin_lock() على قفل محجوز بالفعل بواسطة المستدعي أو قفل لم يُهيأ بـ pthread_spin_init(3) يؤدي إلى سلوك غير محدد.

الدالة pthread_spin_trylock() تشبه pthread_spin_lock()، باستثناء أنه إذا كان قفل الدوران المشار إليه بـ lock مقفلاً حاليًا، فبدلاً من الدوران، يعيد الاستدعاء فورًا مع الخطأ EBUSY.

الدالة pthread_spin_unlock() تفتح قفل الدوران المشار إليه بـ lock. إذا كانت أي خيوط تدور على القفل، فسيحصل أحد تلك الخيوط على القفل.

استدعاء pthread_spin_unlock() على قفل غير محجوز بواسطة المستدعي يؤدي إلى سلوك غير محدد.

قيمة الإرجاع
عند النجاح، تعيد هذه الدوال صفرًا. عند الفشل، تعيد رقم خطأ.

الأخطاء
قد تفشل pthread_spin_lock() مع الأخطاء التالية:

EDEADLOCK
    اكتشف النظام حالة توقف تام.

تفشل pthread_spin_trylock() مع الأخطاء التالية:

EBUSY
    قفل الدوران مقفل حاليًا بواسطة خيط آخر.

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

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

تحذيرات
تطبيق أي من الدوال الموصوفة في هذه الصفحة على قفل دوران غير مهيأ يؤدي إلى سلوك غير محدد.

اقرأ الملاحظات في pthread_spin_init(3) بعناية.

انظر أيضًا
pthread_spin_destroy(3), pthread_spin_init(3), pthreads(7)

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

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

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