core-util: log error if we hit file descriptors limit
authorMarcin Lewandowski <marcin@radiokit.org>
Thu, 30 Jun 2016 10:38:14 +0000 (12:38 +0200)
committerTanu Kaskinen <tanuk@iki.fi>
Sat, 10 Sep 2016 15:00:52 +0000 (18:00 +0300)
src/pulsecore/core-util.c

index 350f35b..873f86a 100644 (file)
@@ -3493,6 +3493,16 @@ int pa_pipe_cloexec(int pipefd[2]) {
     if ((r = pipe2(pipefd, O_CLOEXEC)) >= 0)
         goto finish;
 
+    if (errno == EMFILE) {
+        pa_log_error("The per-process limit on the number of open file descriptors has been reached.");
+        return r;
+    }
+
+    if (errno == ENFILE) {
+        pa_log_error("The system-wide limit on the total number of open files has been reached.");
+        return r;
+    }
+
     if (errno != EINVAL && errno != ENOSYS)
         return r;
 
@@ -3501,6 +3511,16 @@ int pa_pipe_cloexec(int pipefd[2]) {
     if ((r = pipe(pipefd)) >= 0)
         goto finish;
 
+    if (errno == EMFILE) {
+        pa_log_error("The per-process limit on the number of open file descriptors has been reached.");
+        return r;
+    }
+
+    if (errno == ENFILE) {
+        pa_log_error("The system-wide limit on the total number of open files has been reached.");
+        return r;
+    }
+
     /* return error */
     return r;