From 890005bf8a7ce36a8bfa4d95e3ea257fab31855d Mon Sep 17 00:00:00 2001 From: Ian Dowse Date: Wed, 2 Mar 2005 02:30:08 +0000 Subject: [PATCH] Use a signal-safe type for two variables that are used to synchronise with a signal handler. This fixes a race condition introduced by compiler reordering that caused dump to sometimes get stuck, especially while dumping large filesystems. --- sbin/dump/tape.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/dump/tape.c b/sbin/dump/tape.c index 490d3d97c351..913409fb7b01 100644 --- a/sbin/dump/tape.c +++ b/sbin/dump/tape.c @@ -109,8 +109,8 @@ char (*nextblock)[TP_BSIZE]; int master; /* pid of master, for sending error signals */ int tenths; /* length of tape used per block written */ -static int caught; /* have we caught the signal to proceed? */ -static int ready; /* have we reached the lock point without having */ +static volatile sig_atomic_t caught; /* have we caught the signal to proceed? */ +static volatile sig_atomic_t ready; /* reached the lock point without having */ /* received the SIGUSR2 signal from the prev slave? */ static jmp_buf jmpbuf; /* where to jump to if we are ready when the */ /* SIGUSR2 arrives from the previous slave */