From patchwork Sun Oct 27 16:27:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dr. Arne Babenhauserheide" X-Patchwork-Id: 15842 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 2DAFD1764C; Sun, 27 Oct 2019 16:29:44 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_MSPIKE_H2,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id E5844175CD for ; Sun, 27 Oct 2019 16:29:43 +0000 (GMT) Received: from localhost ([::1]:45832 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOlQF-0001UC-3C for patchwork@mira.cbaines.net; Sun, 27 Oct 2019 12:29:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46579) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOlPb-0001Jy-U3 for guix-patches@gnu.org; Sun, 27 Oct 2019 12:29:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iOlPa-0001RK-UL for guix-patches@gnu.org; Sun, 27 Oct 2019 12:29:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:34609) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iOlPa-0001RC-LM for guix-patches@gnu.org; Sun, 27 Oct 2019 12:29:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iOlPa-0004GA-FK for guix-patches@gnu.org; Sun, 27 Oct 2019 12:29:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#36630] [PATCH] use two threads to build man-pages and secure output msgs with mutex References: <20190712214245.23857-1-arne_bab@web.de> In-Reply-To: <20190712214245.23857-1-arne_bab@web.de> Resent-From: Arne Babenhauserheide Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 27 Oct 2019 16:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36630 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 36630@debbugs.gnu.org Cc: Arne Babenhauserheide Received: via spool by 36630-submit@debbugs.gnu.org id=B36630.157219370116312 (code B ref 36630); Sun, 27 Oct 2019 16:29:02 +0000 Received: (at 36630) by debbugs.gnu.org; 27 Oct 2019 16:28:21 +0000 Received: from localhost ([127.0.0.1]:43430 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOlOv-0004F1-Ha for submit@debbugs.gnu.org; Sun, 27 Oct 2019 12:28:21 -0400 Received: from mout.web.de ([212.227.17.12]:40003) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOlOt-0004Eo-Gi for 36630@debbugs.gnu.org; Sun, 27 Oct 2019 12:28:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1572193693; bh=pqxV/DTGr4V8YDf4swbiSrj5VJ0+V4lecEdV1REM3Mo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Reply-To; b=XA9q28MTAeq0sKCZaq01KC9mgJeqFa2ax8MmURNKjLizIPTZLdk+Ic6vRY2m5lTf2 H/6AFo19vwcMg+bqFF0LP02QJTycrLYDWJaX21D40nAfA8mZTH7wRYT962SKK2cgE4 nBgUzW2ktmpqU4fjsLsanpSiZNfGtbo8WIV1Vlh8= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from fluss.speedport.ip ([80.136.28.233]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0Lx7Ir-1hvk7p3dIP-016eGV; Sun, 27 Oct 2019 17:28:12 +0100 From: Arne Babenhauserheide Date: Sun, 27 Oct 2019 17:27:57 +0100 Message-Id: <20191027162757.32295-1-arne_bab@web.de> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:MDzkB42nxTDLwCiU+4hCseRPTZcPet9JXARYgejWT4ldFEZyBXk LwqPKk0GIMusRdgVmx2kovg6bc5EgfXAbETwi8pEr5cjfIX/Cpm3RlsbhFjAn0hlh93hnAe 1O4DAX+mCFnuoqzX71/H38t0PfCDPqnOY7BDUKnU2dIpfQGymOuWG/NJ7Cei84WmW0JSJ6O qNYYaU+BN6OsterZS33Iw== X-UI-Out-Filterresults: notjunk:1;V03:K0:w49cmtcv31Y=:PgFOMq8i7BC3ko1KWCdD/9 Mx0WS7igsNEm7EaJ/GHu5JcocJ9/AWf05sASki8u/J/hf2Zvmb2g7LokNBagKjWTA7q86S7if rkqMqC/tx5sQ6Hm+gMf+rZt1CAPQxlpEvQvQXSs6kJrOsCjIOAGnj8028CZspJ/DyxuXJ8W9w WspVnEewI8bvUWcxTa+jsCt6/5BC2uk+fUmgIbv6Zc+B/gja0ClOkn0Dku+tgw395d83nsO4v ChgVlQ65auK8e71DaivV1paSX/nj3f0QjfocOEUxnwF8hvKAYOVtZMzk9AVXxDzS2ZEL+aQrz KHvvN5Vs+b7uTltOjf2RgM4CfSIY5V3CHbqWNYH2NrKFqH8PjRiE2qRdsnd1wdUR7bnmNRN9S G5o5nD9QNCvIF2aaEw44scDyFYQpGNnzxS0JCJGvuu+0MH0V+O5XBhnFk9Ip8aZGwmvSG0MDR hBMg6fLpqWQZdW10vo3WM9EdoK1skH3ywZbpVh/gMzMuPoMGFF8A0v9FjdJ9LvRvx739KTWIX vIdD2cuSNNU9cxXVADHyNz39OvNBqbdJrYluN1Ve2pmLrD6fpybRI2HFRMaoTp+tJ7LrCItrW sHpU0k9U+ndVPdyUZmf+XZEvMEu/MLDskU0XA3PQs4mZhbBWuZk+W8PppCDtWrhGof8JMzepH Z/ExloHLD00uF5N9UTuUGZiH3nmurAwYFb+icVX3szAIcF2SX3Wb7TbQiYumVVEKpR5P01YSj ypG86hdOejvpMPOe1ukLxfYYj2zHw0UuylE5eqc5io482CmYXq496CQrYphaHeeZD+AIzYi24 oLVtjATgvRUPSmRjUDOg1pI/Q4pxV/uHuF3cicMe/WVElMSOg765g/8PWECTfYgJkZrCPjJsS lwXosPUzYmIHSJ1y2+5p9ugfl8bxStaGi3dcflpR1GWNY0jYHRJZlAzBD16DAADqMzC2wWXNW X7Uv+y5bXz/GvAxYh3UxrXPSIlZVt5Zx7JeYaDjvZBTdtMEQnme6igRqmeu3Nnu1SJkk1M+Kg Mbz0ckNkcIBzwmV8oa49w/pVyvA38hi0nHk60XVVdDasUmOJd/Z2u8YjycG9yao2I0JF9Drwg uD0zgte098oiTrRRKLjLCNyjlvfnLqkn1/GvFr2g02LhJP9tnhCnZfkbmwRxIFN7OG4zwM905 n0skzG743s979YsRApNzGrD7J+y3iq2xiHBl5mhLP8HL0CcUPhX/xMrMhpZL8p2b27R9SXKTt edIzZi13beYdyaWHcHqsEI4+g9TAxMJTl7j22cw== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: arne_bab@web.de Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- guix/profiles.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) --- 2.23.0 diff --git a/guix/profiles.scm b/guix/profiles.scm index a0ae9a4c7e..9d2133df2d 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1315,11 +1315,18 @@ the entries in MANIFEST." (ice-9 threads) (srfi srfi-1) (srfi srfi-19)) + ;; ensure conflict free user-output + (define status-output-mutex (make-mutex)) + + (define (status-message msg) + (lock-mutex status-output-mutex) + (display msg) + (unlock-mutex status-output-mutex)) (define (compute-entry directory count total) - (format #t "\r[~3d/~3d] building list of \ + (status-message (format #f "\r[~3d/~3d] building list of \ man-db entries..." - count total) + count total)) (force-output) (let ((man (string-append directory "/share/man"))) @@ -1332,7 +1339,9 @@ man-db entries..." ;; decompression), so report progress as we traverse INPUTS. (let* ((inputs '#$(manifest-inputs manifest)) (total (length inputs))) - (apply append (par-map compute-entry + ;; experimenting shows that two threads suffice to remove most + ;; waiting + (apply append (n-par-map 2 compute-entry inputs (iota total 1) (make-list total total)))))