From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30450 invoked by alias); 8 Mar 2005 09:58:34 -0000 Mailing-List: contact pthreads-win32-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sources.redhat.com Received: (qmail 30350 invoked from network); 8 Mar 2005 09:58:26 -0000 Received: from unknown (HELO mtagate3.de.ibm.com) (195.212.29.152) by sourceware.org with SMTP; 8 Mar 2005 09:58:26 -0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate3.de.ibm.com (8.12.10/8.12.10) with ESMTP id j289wPFa143464 for ; Tue, 8 Mar 2005 09:58:25 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id j289wPTB138256 for ; Tue, 8 Mar 2005 10:58:25 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11/8.12.11) with ESMTP id j289wPMi022695 for ; Tue, 8 Mar 2005 10:58:25 +0100 Received: from d12ml062.megacenter.de.ibm.com (d12ml062.megacenter.de.ibm.com [9.149.166.219]) by d12av02.megacenter.de.ibm.com (8.12.11/8.12.11) with ESMTP id j289wPd3022691; Tue, 8 Mar 2005 10:58:25 +0100 In-Reply-To: Subject: Re: starvation in pthread_once? To: Ross Johnson Cc: Pthreads-Win32 list Message-ID: From: Alexander Terekhov Date: Tue, 08 Mar 2005 09:58:00 -0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-SW-Source: 2005/txt/msg00034.txt.bz2 Grrr. Bad day. if (!once_control) { named_mutex::guard guard(&once_control2); if (!once_control2) { once_control2 = true; } once_control = true; } regards, alexander. Alexander Terekhov/Germany/IBM@IBMDE@sources.redhat.com on 03/08/2005 10:55:53 AM Sent by: pthreads-win32-owner@sources.redhat.com To: Ross Johnson cc: Pthreads-Win32 list Subject: Re: starvation in pthread_once? > DCSI-TLS: (__declspec(thread) for control variable; DLL issues > aside for a moment) > > if (!once_control) { > named_mutex::guard guard(&once_control); > if (!once_control) { > > once_control = true; > } > } Sorry, I meant: if (!once_control) { named_mutex::guard guard(&once_control); if (!once_control2) { once_control2 = true; } once_control = true; } where once_control2 is a non-TLS flag. regards, alexander.