api = NULL;
}
- if (the_pipe[0] >= 0)
- pa_assert_se(pa_close(the_pipe[0]) == 0);
- if (the_pipe[1] >= 0)
- pa_assert_se(pa_close(the_pipe[1]) == 0);
- the_pipe[0] = the_pipe[1] = -1;
+ pa_close_pipe(the_pipe);
if (installed) {
pa_assert_se(sigaction(SIGXCPU, &sigaction_prev, NULL) >= 0);
}
}
-static void close_pipe(int p[2]) {
- if (p[0] != -1)
- pa_assert_se(pa_close(p[0]) == 0);
- if (p[1] != -1)
- pa_assert_se(pa_close(p[1]) == 0);
- p[0] = p[1] = -1;
-}
-
#define set_env(key, value) putenv(pa_sprintf_malloc("%s=%s", (key), (value)))
#if defined(HAVE_PWD_H) && defined(HAVE_GRP_H)
if (valid_pid_file)
pa_pid_file_remove();
- close_pipe(daemon_pipe);
+ pa_close_pipe(daemon_pipe);
#ifdef OS_IS_WIN32
WSACleanup();
return 0;
fail:
- if (fds[0] != -1)
- pa_assert_se(pa_close(fds[0]) == 0);
- if (fds[1] != -1)
- pa_assert_se(pa_close(fds[1]) == 0);
+ pa_close_pipe(fds);
unlock_autospawn_lock_file(c);
api->io_free(io_event);
io_event = NULL;
- pa_assert_se(close(signal_pipe[0]) == 0);
- pa_assert_se(close(signal_pipe[1]) == 0);
- signal_pipe[0] = signal_pipe[1] = -1;
+ pa_close_pipe(signal_pipe);
api = NULL;
}
pa_xfree(m->pollfds);
- if (m->wakeup_pipe[0] >= 0)
- pa_assert_se(pa_close(m->wakeup_pipe[0]) == 0);
- if (m->wakeup_pipe[1] >= 0)
- pa_assert_se(pa_close(m->wakeup_pipe[1]) == 0);
+ pa_close_pipe(m->wakeup_pipe);
pa_xfree(m);
}
return (void*) p;
}
+
+void pa_close_pipe(int fds[2]) {
+ pa_assert(fds);
+
+ if (fds[0] >= 0)
+ pa_assert_se(pa_close(fds[0]) == 0);
+
+ if (fds[1] >= 0)
+ pa_assert_se(pa_close(fds[1]) == 0);
+
+ fds[0] = fds[1] = -1;
+}
+
return n + 1;
}
+void pa_close_pipe(int fds[2]);
+
#endif
void pa_fdsem_free(pa_fdsem *f) {
pa_assert(f);
- pa_assert_se(pa_close(f->fds[0]) == 0);
- pa_assert_se(pa_close(f->fds[1]) == 0);
+ pa_close_pipe(f->fds);
pa_xfree(f);
}