التابع Queue.close في روبي

من موسوعة حسوب
< Ruby‏ | Queue

يغلق التابع close الطابور الذي استُدعي معه. لا يمكن إعادة فتح طابور الانتظار المُغلق.

بعد اكتمال استدعاء طلب الإغلاق، سيكون التالي صحيحًا:

  • سيعيد التابع ?closed  القيمة true.
  • سيُتجاهل التابع close إن استدعي مرة أخرى مع نفس الطابور.
  • استدعاء التابع enq أو التابع push أو المعامل>>  سيرمي استثناءً.
  • عندما يُعيد التابع ?empty  القيمة false، سيُعيد استدعاء التابع deq أو pop أو shift كائنًا من طابور الانتظار كالمعتاد.

الاستثناء ClosedQueueError موروثٌ من الصنف StopIteration، لذلك يمكنك كسر كتلة حلقة التكرار (loop block).

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

close

أمثلة

مثالٌ عن استخدام التابع close:

    q = Queue.new
    Thread.new{
      while e = q.deq # wait for nil to break loop
        # ...
      end
    }
    q.close

انظر أيضًا

  • التابع length : يعيد طول الطابور الذي استُدعي معه.
  • التابع clear : يحذف كل الكائنات من الطابور الذي استُدعي معه.
  • التابع pop: يجلب بياناتٍ من الطابور الذي استُدعي معه.

مصادر