#endif
+static sig_atomic_t signaled = 0;
+
+
static void sig_handler(int signal) {
(void)signal;
+
+ signaled = 1;
}
static void setup_signals(void) {
struct sigaction action;
ssize_t r;
assert(SSIZE_MAX <= SIZE_MAX);
- while ((r = read(fd, buffer, sizeof(buffer))) > 0) {
+ while (!signaled && (r = read(fd, buffer, sizeof(buffer))) > 0) {
size_t space;
ssize_t r2;