mirror of
git://projects.qi-hardware.com/gmenu2x.git
synced 2024-11-25 18:05:20 +02: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:
parent
482bd09d78
commit
4550eebc90
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user