1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-06-28 12:27:37 +03:00

Make system calls restart on signals instead of handling EINTR

This leads to simpler code and probably fewer bugs.
This commit is contained in:
Maarten ter Huurne 2014-08-18 23:46:17 +02:00
parent 482bd09d78
commit 4550eebc90
2 changed files with 3 additions and 10 deletions

View File

@ -140,6 +140,7 @@ static void set_handler(int signal, void (*handler)(int))
struct sigaction sig;
sigaction(signal, NULL, &sig);
sig.sa_handler = handler;
sig.sa_flags |= SA_RESTART;
sigaction(signal, &sig, NULL);
}

View File

@ -116,11 +116,7 @@ bool writeStringToFile(string const& filename, string const& data) {
}
// Close temporary file.
while (close(fd)) {
if (errno != EINTR) {
return false;
}
}
ok &= close(fd) == 0;
// Replace actual output file with temporary file.
if (ok) {
@ -148,11 +144,7 @@ bool syncDir(string const& dirname)
bool ok = fsync(fd) == 0;
while (close(fd)) {
if (errno != EINTR) {
return false;
}
}
ok &= close(fd) == 0;
return ok;
}