diff --git a/src/crystal/system/unix/signal.cr b/src/crystal/system/unix/signal.cr index 26f4bf6cf7e9..12804ea00267 100644 --- a/src/crystal/system/unix/signal.cr +++ b/src/crystal/system/unix/signal.cr @@ -32,7 +32,7 @@ module Crystal::System::Signal action.sa_flags = LibC::SA_RESTART action.sa_sigaction = LibC::SigactionHandlerT.new do |value, _, _| - writer.write_bytes(value) unless writer.closed? + FileDescriptor.write_fully(writer.fd, pointerof(value)) unless writer.closed? end LibC.sigemptyset(pointerof(action.@sa_mask)) LibC.sigaction(signal, pointerof(action), nil)