صفحة الصنف Signal في روبي

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

تسمح العديد من أنظمة التشغيل بإرسال إشارات إلى العمليات (processes) قيد التشغيل.

لبعض الإشارات تأثير محدد على العملية، بينما تكون أخرى مرتبطة بالشيفرة البرمجية، وتتصرف بناء عليها. على سبيل المثال، قد تقوم العملية بإمساك (trap) إشارة USR1 واستخدامها في عملية التصحيح (debugging)، أو قد تستخدم الإشارة TERM لبدء إيقاف تشغيل مُراقب (controlled shutdown).

pid = fork do
  Signal.trap("USR1") do
    $debug = !$debug
    puts "Debug now: #$debug"
  end
  Signal.trap("TERM") do
    puts "Terminating..."
    shutdown()
  end
  # . . . do some work . . .
end
Process.detach(pid)
# Controlling program:
Process.kill("USR1", pid)
# ...
Process.kill("USR1", pid)
# ...
Process.kill("TERM", pid)

الناتج سيكون:

 Debug now: true
 Debug now: false
Terminating...

أسماء الإشارة المتوفرة وتفسيراتها تعتمد على النظام المستخدم. كما الحال مع صياغات تسليم الإشارات ( Signal delivery semantics). لهذا فلا ينبغي التعويل على شكل محدد من تسليم الإشارات.

توابع الصنف العامة (Public Class Methods)

التابع list

بعبد قائمة بأسماء الإشارة التي تم تعيينها إلى أرقام الإشارة الأصلية المقابلة.

التابع signame

يحول رقم الإشارة إلى اسم إشارة.

التابع trap

يحدد التابع trap معالج الإشارات (handling of signals)

مصادر