From dev-return-10732-apmail-apr-dev-archive=apr.apache.org@apr.apache.org Fri Dec 05 11:26:25 2003 Return-Path: Delivered-To: apmail-apr-dev-archive@www.apache.org Received: (qmail 19079 invoked from network); 5 Dec 2003 11:26:25 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 5 Dec 2003 11:26:25 -0000 Received: (qmail 20244 invoked by uid 500); 5 Dec 2003 11:25:58 -0000 Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 19991 invoked by uid 500); 5 Dec 2003 11:25:56 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 19948 invoked from network); 5 Dec 2003 11:25:55 -0000 Message-ID: <3FD06ADF.7020804@attglobal.net> Date: Fri, 05 Dec 2003 06:24:15 -0500 From: Jeff Trawick Reply-To: trawick@attglobal.net User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 To: dev@apr.apache.org Subject: Re: cvs commit: apr/include apr_atomic.h References: <20031204200604.62119.qmail@minotaur.apache.org> <20031205065957.GA21797@manyfish.co.uk> In-Reply-To: <20031205065957.GA21797@manyfish.co.uk> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Symantec AntiVirus Scan Engine X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Joe Orton wrote: > On Thu, Dec 04, 2003 at 08:06:04PM -0000, Jeff Trawick wrote: > ... > >> #if !defined(apr_atomic_add32) && !defined(APR_OVERRIDE_ATOMIC_ADD32) >> -void apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val) >> +apr_uint32_t apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val) >> { >> + apr_uint32_t old_value; >> + >> #if APR_HAS_THREADS >> apr_thread_mutex_t *lock = hash_mutex[ATOMIC_HASH(mem)]; >> >> if (apr_thread_mutex_lock(lock) == APR_SUCCESS) { >> + old_value = *mem; >> *mem += val; >> apr_thread_mutex_unlock(lock); >> } > > > apr_atomic.c: In function `apr_atomic_add32': > apr_atomic.c:205: warning: `old_value' might be used uninitialized in this function > > I'd fix it but I'm not sure how... abort()? > assert(apr_thread_mutex_lock(lock) == APR_SUCCESS) instead? return a > random value since everything has gone to pot anyway? I'd vote for abort() or assert().