Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id AE8766DE01F7 for ; Tue, 3 May 2016 12:01:58 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.013 X-Spam-Level: X-Spam-Status: No, score=-0.013 tagged_above=-999 required=5 tests=[AWL=-0.002, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AIz00ZAChx2m for ; Tue, 3 May 2016 12:01:50 -0700 (PDT) Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197]) by arlo.cworth.org (Postfix) with ESMTPS id 25F146DE00DF for ; Tue, 3 May 2016 12:01:50 -0700 (PDT) Received: from remotemail by fethera.tethera.net with local (Exim 4.84) (envelope-from ) id 1axfZl-0004OQ-GZ; Tue, 03 May 2016 15:01:41 -0400 Received: (nullmailer pid 17899 invoked by uid 1000); Tue, 03 May 2016 19:01:44 -0000 From: David Bremner To: Istvan Marko , notmuch@notmuchmail.org Subject: Re: [PATCH] Use the Xapian::DB_RETRY_LOCK flag when available In-Reply-To: References: User-Agent: Notmuch/0.21+99~gd93d377 (http://notmuchmail.org) Emacs/24.5.1 (x86_64-pc-linux-gnu) Date: Tue, 03 May 2016 16:01:44 -0300 Message-ID: <8760uv6k4n.fsf@zancas.localnet> MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2016 19:01:58 -0000 Istvan Marko writes: > Xapian 1.3 has introduced the DB_RETRY_LOCK flag (Xapian bug > 275). Detect it in configure and use it if available. With this flag > commands that need the write lock will wait for their turn instead of > aborting when it's not immediately available. > --- > configure | 25 ++++++++++++++++++++++++- > lib/database.cc | 5 +++++ > 2 files changed, 29 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 6231d2b..0c1d5bc 100755 > --- a/configure > +++ b/configure > @@ -371,6 +371,21 @@ if [ ${have_xapian} = "1" ]; then > esac > fi > > +# DB_RETRY_LOCK is only supported on Xapian > 1.3.2 > +have_xapian_db_retry_lock=0 > +if [ ${have_xapian} = "1" ]; then > + printf "Checking for Xapian lock retry support... " > + case "${xapian_version}" in > + 0.*|1.[012].*|1.3.[0-2]) > + printf "No (only available with Xapian > 1.3.2).\n" ;; > + [1-9]*.[0-9]*.[0-9]*) > + have_xapian_db_retry_lock=1 > + printf "Yes.\n" ;; > + *) > + printf "Unknown version.\n" ;; > + esac > +fi First, thanks for writing the patch. I'd completely forgotten about this feature, and it's something pretty important for many notmuch users. I saw you got some good feedback from Jani. As a less urgent comment, what about writing the test in the style of http://article.gmane.org/gmane.mail.notmuch.general/22329 I don't know if there's complete concensus on this, but I personally much prefer testing features to versions when possible. d