เมื่อเขาหน้าเว็บเกี่ยวกับเคล็ดลับท่อตนเองแดน Bernstein อธิบายสภาพการแข่งขันด้วยselect()และสัญญาณข้อเสนอการแก้ปัญหาและสรุปว่า
แน่นอนว่าสิ่งที่ถูกต้องคือการ
fork()ส่งคืนไฟล์อธิบายไม่ใช่รหัสกระบวนการ
เขาหมายความว่าอย่างไร - เป็นเรื่องเกี่ยวกับความสามารถselect()ในกระบวนการลูกเพื่อจัดการการเปลี่ยนแปลงสถานะของพวกเขาแทนที่จะต้องใช้เครื่องจัดการสัญญาณเพื่อรับการแจ้งเตือนการเปลี่ยนแปลงสถานะเหล่านั้นหรือไม่
signalfdและสิ่งนั้นกลับมาแล้วเหรอ?
wait()มีบางสิ่งที่คุณทำไม่ได้ดังนั้นมีคนคิดค้น SIGCHLD แต่มันก็เป็นงานที่แย่ จากประสบการณ์ของผมและตอนนี้ที่พวกเขามีอยู่โรยดี nonblocking wait3(), wait4()และ / หรือwaitpid()การโทรที่สถานที่สำคัญ (อาจจะห่วงเหตุการณ์หลักของคุณ) เป็นทางเลือกที่เหนือกว่าอย่างมากมาย