From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 25 23:57:29 2010 Received: (at submit) by debbugs.gnu.org; 26 Jul 2010 03:57:29 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OdEoi-0006VE-Mu for submit@debbugs.gnu.org; Sun, 25 Jul 2010 23:57:29 -0400 Received: from mx10.gnu.org ([199.232.76.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OdEoh-0006V7-3m for submit@debbugs.gnu.org; Sun, 25 Jul 2010 23:57:27 -0400 Received: from lists.gnu.org ([199.232.76.165]:36540) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1OdEol-0005pn-FA for submit@debbugs.gnu.org; Sun, 25 Jul 2010 23:57:31 -0400 Received: from [140.186.70.92] (port=46202 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OdEoj-0003fA-OG for bug-coreutils@gnu.org; Sun, 25 Jul 2010 23:57:30 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OdEoi-0006gs-39 for bug-coreutils@gnu.org; Sun, 25 Jul 2010 23:57:29 -0400 Received: from kiwi.cs.ucla.edu ([131.179.128.19]:38812) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OdEoh-0006gh-PL for bug-coreutils@gnu.org; Sun, 25 Jul 2010 23:57:28 -0400 Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200]) by kiwi.cs.ucla.edu (8.13.8+Sun/8.13.8/UCLACS-6.0) with ESMTP id o6Q3vOrM025642 for ; Sun, 25 Jul 2010 20:57:25 -0700 (PDT) Message-ID: <4C4D07A4.7090201@cs.ucla.edu> Date: Sun, 25 Jul 2010 20:57:24 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.10) Gecko/20100527 Thunderbird/3.0.5 MIME-Version: 1.0 To: Bug Coreutils Subject: [PATCH] sort: omit unnecessary mutex unlock+lock; simplify heap access Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.1 (-----) This removes an unnecessary mutex lock+unlock and prepares for a refactoring patch to heap.c that I'll install shortly. >From 7cc2429f13db9b0b70572ac1879506f4e444f4c6 Mon Sep 17 00:00:00 2001 From: Paul R. Eggert Date: Sun, 25 Jul 2010 20:54:55 -0700 Subject: [PATCH] sort: omit unnecessary mutex unlock+lock; simplify heap access * src/sort.c (queue_pop): Omit unnecessary unlock+lock after pthread_cond_wait returns. Don't access "count" member of the heap; any efficiency gains should be quite minor, the access complicates this code, and "count" should be private anyway. --- src/sort.c | 19 +++++-------------- 1 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/sort.c b/src/sort.c index ea2720f..577521d 100644 --- a/src/sort.c +++ b/src/sort.c @@ -3173,20 +3173,11 @@ queue_insert (struct merge_node_queue *queue, struct merge_node *node) static inline struct merge_node * queue_pop (struct merge_node_queue *queue) { - struct merge_node *node = NULL; - - while (!node) - { - pthread_mutex_lock (&queue->mutex); - if (queue->priority_queue->count) - node = heap_remove_top (queue->priority_queue); - else - { - /* Go into conditional wait if no NODE is immediately available. */ - pthread_cond_wait (&queue->cond, &queue->mutex); - } - pthread_mutex_unlock (&queue->mutex); - } + struct merge_node *node; + pthread_mutex_lock (&queue->mutex); + while (! (node = heap_remove_top (queue->priority_queue))) + pthread_cond_wait (&queue->cond, &queue->mutex); + pthread_mutex_unlock (&queue->mutex); lock_node (node); node->queued = false; return node; -- 1.7.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 26 05:54:11 2010 Received: (at 6729-done) by debbugs.gnu.org; 26 Jul 2010 09:54:11 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OdKNv-0000cT-J5 for submit@debbugs.gnu.org; Mon, 26 Jul 2010 05:54:11 -0400 Received: from mail1.slb.deg.dub.stisp.net ([84.203.253.98]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1OdKNt-0000cN-Gx for 6729-done@debbugs.gnu.org; Mon, 26 Jul 2010 05:54:10 -0400 Received: (qmail 15525 invoked from network); 26 Jul 2010 09:54:13 -0000 Received: from unknown (HELO ?192.168.2.25?) (84.203.137.218) by mail1.slb.deg.dub.stisp.net with SMTP; 26 Jul 2010 09:54:13 -0000 Message-ID: <4C4D5B15.4040303@draigBrady.com> Date: Mon, 26 Jul 2010 10:53:25 +0100 From: =?ISO-8859-1?Q?P=E1draig_Brady?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3 MIME-Version: 1.0 To: Paul Eggert Subject: Re: bug#6729: [PATCH] sort: omit unnecessary mutex unlock+lock; simplify heap access References: <4C4D07A4.7090201@cs.ucla.edu> In-Reply-To: <4C4D07A4.7090201@cs.ucla.edu> X-Enigmail-Version: 1.0.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.7 (--) X-Debbugs-Envelope-To: 6729-done Cc: 6729-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.7 (--) On 26/07/10 04:57, Paul Eggert wrote: > This removes an unnecessary mutex lock+unlock > and prepares for a refactoring patch to heap.c that I'll > install shortly. closing... thanks, Pádraig. From unknown Mon Jun 23 13:12:24 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 23 Aug 2010 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator