التابع sleep‎ الخاص بالصنف Mutex في روبي

من موسوعة حسوب

يحرر التابع sleep القفل (lock)، وينام لمدة timeout ثانية إذا تم تمرير الوسيط timeout وكانت قيمته تخالف nil أو اللا نهائية (forever). يطلق الخطأ ThreadError إذا لم يتم مسك الكائنmutex من قبل المهمة الفرعية (thread) الحالية.

عندما تُستأنف المهمة الفرعية، ستحاول تلك المهمة استعادة القفل (reacquire the lock).

لاحظ أنه يمكن تنبيه (wakeup) هذا التابع دون استدعاء Thread#wakeup بشكل صريح. كما يحدث، على سبيل المثال، عند تلقي إشارة.

البنية العامة

sleep(timeout = nil)  number

المعاملات

timeout‎

عدد الثواني.

القيمة المُعادة

يعيد عددا صحيحا.

انظر أيضا

  • التابع owned?‎: يعيد القيمة true إن كان هذا القفل ممسوكًا حاليًا من قبل المهمة الفرعية (thread) الحالية.
  • التابع synchronize: يحصل على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.

مصادر