Async-Signal Safety: handler không được deadlock
malloc() giữ lock → signal ngắt ngay giữa đó → handler gọi malloc lại → deadlock; self-pipe tránh được
Phím tắt: ←/→ từng bước · Space tự chạy/tạm dừng
malloc() giữ lock → signal ngắt ngay giữa đó → handler gọi malloc lại → deadlock; self-pipe tránh được
Phím tắt: ←/→ từng bước · Space tự chạy/tạm dừng