aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/dirax.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcrystfel/src/dirax.c')
-rw-r--r--libcrystfel/src/dirax.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/libcrystfel/src/dirax.c b/libcrystfel/src/dirax.c
index b3a8f15d..160df719 100644
--- a/libcrystfel/src/dirax.c
+++ b/libcrystfel/src/dirax.c
@@ -521,9 +521,21 @@ void run_dirax(struct image *image)
sval = select(dirax->pty+1, &fds, NULL, NULL, &tv);
if ( sval == -1 ) {
- int err = errno;
- ERROR("select() failed: %s\n", strerror(err));
- rval = 1;
+
+ const int err = errno;
+
+ switch ( err ) {
+
+ case EINTR:
+ STATUS("Restarting select()\n");
+ break;
+
+ default:
+ ERROR("select() failed: %s\n", strerror(err));
+ rval = 1;
+
+ }
+
} else if ( sval != 0 ) {
rval = dirax_readable(image, dirax);
} else {