From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ta7OR-0002aC-Dt for qemu-devel@nongnu.org; Sun, 18 Nov 2012 11:06:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ta7OO-0005IY-9O for qemu-devel@nongnu.org; Sun, 18 Nov 2012 11:06:47 -0500 Received: from mail-wi0-f175.google.com ([209.85.212.175]:45037) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ta7OO-0005IS-2N for qemu-devel@nongnu.org; Sun, 18 Nov 2012 11:06:44 -0500 Received: by mail-wi0-f175.google.com with SMTP id hn14so508977wib.10 for ; Sun, 18 Nov 2012 08:06:43 -0800 (PST) Sender: Paolo Bonzini Message-ID: <50A90790.60007@redhat.com> Date: Sun, 18 Nov 2012 17:06:40 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1351862047-23172-1-git-send-email-pbonzini@redhat.com> <1351862047-23172-3-git-send-email-pbonzini@redhat.com> <50A8A5BF.3060906@comstyle.com> In-Reply-To: <50A8A5BF.3060906@comstyle.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/5] semaphore: implement fallback counting semaphores with mutex+condvar List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Brad Smith Cc: blauwirbel@gmail.com, jan.kiszka@siemens.com, qemu-devel@nongnu.org, peter.maydell@linaro.org Il 18/11/2012 10:09, Brad Smith ha scritto: > On 11/02/12 09:14, Paolo Bonzini wrote: >> OpenBSD and Darwin do not have sem_timedwait. Implement a fallback >> for them. >> >> Signed-off-by: Paolo Bonzini >> --- >> qemu-thread-posix.c | 74 >> +++++++++++++++++++++++++++++++++++++++++++++++++++++ >> qemu-thread-posix.h | 6 +++++ >> 2 file modificati, 80 inserzioni(+) >> >> diff --git a/qemu-thread-posix.c b/qemu-thread-posix.c >> index 6a3d3a1..048db8f 100644 >> --- a/qemu-thread-posix.c >> +++ b/qemu-thread-posix.c >> @@ -122,36 +122,100 @@ void qemu_sem_init(QemuSemaphore *sem, int init) >> { >> int rc; >> >> +#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) > > OpenBSD 5.2 & -current (libpthread) / NetBSD -current (librt) have > supported sem_timedwait() for roughly 8 months now. Please change this > to properly test for the presence of sem_timedwait() within the > configure script. Please submit a patch. The patched code works, and it's not even suboptimal because *BSD use a mutex/condvar to implement semaphores. We end up executing the very same code. Paolo