]> git.alsa-project.org Git - alsa-lib.git/commitdiff
More better solution for close all handles in server_job()
authorJaroslav Kysela <perex@perex.cz>
Fri, 9 Jan 2004 18:32:05 +0000 (18:32 +0000)
committerJaroslav Kysela <perex@perex.cz>
Fri, 9 Jan 2004 18:32:05 +0000 (18:32 +0000)
src/pcm/pcm_direct.c

index 9291fe25afc2864514b4703cd904483b33af13d1..6f8ef6861eea30a1d7478f103e5c4937fcdfbca7 100644 (file)
@@ -199,8 +199,10 @@ static int make_local_socket(const char *filename, int server, mode_t ipc_perm)
 }
 
 #if 0
+#define SERVER_JOB_DEBUG
 #define server_printf(fmt, args...) printf(fmt, ##args)
 #else
+#undef SERVER_JOB_DEBUG
 #define server_printf(fmt, args...) /* nothing */
 #endif
 
@@ -212,7 +214,11 @@ static void server_job(snd_pcm_direct_t *dmix)
 
        /* close all files to free resources */
        i = sysconf(_SC_OPEN_MAX);
+#ifdef SERVER_JOB_DEBUG
        while (--i >= 3) {
+#else
+       while (--i >= 0) {
+#endif
                if (i != dmix->server_fd && i != dmix->hw_fd)
                        close(i);
        }
@@ -291,7 +297,9 @@ static void server_job(snd_pcm_direct_t *dmix)
        snd_pcm_direct_shm_discard(dmix);
        snd_pcm_direct_semaphore_discard(dmix);
        server_printf("DIRECT SERVER EXIT\n");
+#ifdef SERVER_JOB_DEBUG
        close(0); close(1); close(2);
+#endif
        _exit(EXIT_SUCCESS);
 }