From 19eb7ebd4d4b0390b60ecadc57b9aefb3ae94560 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 17 Sep 2007 13:50:13 +0000 Subject: [PATCH] once.c is no longer POSIX specific. Since it is now considerably more advanced than it used to be, use it on windows, too git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1841 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/Makefile.am | 8 ++-- src/daemon/main.c | 1 - src/pulsecore/once-win32.c | 69 ---------------------------------- src/pulsecore/{once-posix.c => once.c} | 0 4 files changed, 3 insertions(+), 75 deletions(-) delete mode 100644 src/pulsecore/once-win32.c rename src/pulsecore/{once-posix.c => once.c} (100%) diff --git a/src/Makefile.am b/src/Makefile.am index d9933a0..95a0e92 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -77,15 +77,11 @@ endif if OS_IS_WIN32 PA_THREAD_OBJS = \ - pulsecore/once-win32.c pulsecore/once.h \ pulsecore/mutex-win32.c pulsecore/mutex.h \ pulsecore/thread-win32.c pulsecore/thread.h \ - pulsecore/semaphore.h -#pulsecore/semaphore-win32.c pulsecore/semaphore.h + pulsecore/semaphore-win32.c pulsecore/semaphore.h else PA_THREAD_OBJS = \ - pulsecore/atomic.h \ - pulsecore/once-posix.c pulsecore/once.h \ pulsecore/mutex-posix.c pulsecore/mutex.h \ pulsecore/thread-posix.c pulsecore/thread.h \ pulsecore/semaphore-posix.c pulsecore/semaphore.h @@ -496,6 +492,7 @@ libpulse_la_SOURCES += \ pulsecore/flist.c pulsecore/flist.h \ pulsecore/object.c pulsecore/object.h \ pulsecore/msgobject.c pulsecore/msgobject.h \ + pulsecore/once.c pulsecore/once.h \ $(PA_THREAD_OBJS) if OS_IS_WIN32 @@ -706,6 +703,7 @@ libpulsecore_la_SOURCES += \ pulsecore/rtpoll.c pulsecore/rtpoll.h \ pulsecore/rtclock.c pulsecore/rtclock.h \ pulsecore/macro.h \ + pulsecore/once.c pulsecore/once.h \ $(PA_THREAD_OBJS) if OS_IS_WIN32 diff --git a/src/daemon/main.c b/src/daemon/main.c index c446582..ba2a33d 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -320,7 +320,6 @@ int main(int argc, char *argv[]) { int daemon_pipe[2] = { -1, -1 }; int suid_root, real_root; int valid_pid_file = 0; - gid_t gid = (gid_t) -1; #ifdef OS_IS_WIN32 diff --git a/src/pulsecore/once-win32.c b/src/pulsecore/once-win32.c deleted file mode 100644 index b30097c..0000000 --- a/src/pulsecore/once-win32.c +++ /dev/null @@ -1,69 +0,0 @@ -/* $Id$ */ - -/*** - This file is part of PulseAudio. - - Copyright 2006 Pierre Ossman for Cendio AB - - PulseAudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2 of the License, - or (at your option) any later version. - - PulseAudio is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with PulseAudio; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. -***/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include - -#include - -#include "once.h" - -void pa_once(pa_once_t *control, pa_once_func_t func) { - HANDLE mutex; - char name[64]; - - assert(control); - assert(func); - - /* Create the global mutex */ - sprintf(name, "pulse%d", (int)GetCurrentProcessId()); - - mutex = CreateMutex(NULL, FALSE, name); - assert(mutex); - - /* Create the local mutex */ - WaitForSingleObject(mutex, INFINITE); - if (!control->mutex) - control->mutex = pa_mutex_new(1); - ReleaseMutex(mutex); - - CloseHandle(mutex); - - /* Execute function */ - pa_mutex_lock(control->mutex); - if (!control->once_value) { - control->once_value = 1; - func(); - } - pa_mutex_unlock(control->mutex); - - /* Caveat: We have to make sure that the once func has completed - * before returning, even if the once func is not actually - * executed by us. Hence the awkward locking. */ -} diff --git a/src/pulsecore/once-posix.c b/src/pulsecore/once.c similarity index 100% rename from src/pulsecore/once-posix.c rename to src/pulsecore/once.c -- 2.7.4