From: Jaroslav Kysela Date: Fri, 9 Jan 2004 18:32:05 +0000 (+0000) Subject: More better solution for close all handles in server_job() X-Git-Tag: v1.0.3~52 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=0fc787b69e6c413b5533c8bc2ac3508a4c05937e;p=alsa-lib.git More better solution for close all handles in server_job() --- diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c index 9291fe25..6f8ef686 100644 --- a/src/pcm/pcm_direct.c +++ b/src/pcm/pcm_direct.c @@ -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); }