[{"id":22808,"web_url":"https://patchwork.libcamera.org/comment/22808/","msgid":"<165113754793.4076486.17637849329422147339@Monstersaurus>","date":"2022-04-28T09:19:07","subject":"Re: [libcamera-devel] [PATCH] libcamera: base: Make\n\tMutexLocker(Mutex &mutex) non-blocking","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Eric Curtin via libcamera-devel (2022-04-27 16:26:40)\n> Camera::acquire claims to be non-blocking, in order to achieve this,\n> std::unique_lock<std::mutex> constructor must be called with\n> try_to_lock so it doesn't block if a lock cannot be obtained.\n> \n> Bug: https://bugs.libcamera.org/show_bug.cgi?id=127\n> Signed-off-by: Eric Curtin <ecurtin@redhat.com>\n> ---\n>  include/libcamera/base/mutex.h | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/include/libcamera/base/mutex.h b/include/libcamera/base/mutex.h\n> index 2d23e49e..c4a5f791 100644\n> --- a/include/libcamera/base/mutex.h\n> +++ b/include/libcamera/base/mutex.h\n> @@ -45,7 +45,7 @@ class LIBCAMERA_TSA_SCOPED_CAPABILITY MutexLocker final\n>  {\n>  public:\n>         explicit MutexLocker(Mutex &mutex) LIBCAMERA_TSA_ACQUIRE(mutex)\n> -               : lock_(mutex.mutex_)\n> +               : lock_(mutex.mutex_, std::try_to_lock)\n\nDoes the code in question already call MutexLocker::try_lock(), but it\nstill blocks?\n\nI.e. - does this just enable / allow calling lock_.try_lock() where\nbefore callers would block regardless?\n\nI can't quite grasp what the implications are here on other locations\nthat would like to block ... does it make all calls to lock()\nnon-blocking now? (even if they need it to be?)\n\nhttps://en.cppreference.com/w/cpp/thread/lock_tag_t doesn't seem to make\nit clear what the full effects are :-(\n\n--\nKieran\n\n\n\n>         {\n>         }\n>  \n> -- \n> 2.35.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 1D3DCC3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 28 Apr 2022 09:19:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 58AB865647;\n\tThu, 28 Apr 2022 11:19:13 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 204856563E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Apr 2022 11:19:11 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AD10D496;\n\tThu, 28 Apr 2022 11:19:10 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1651137553;\n\tbh=HXYVHKwnSac/J1Qxaf93KYH5KipJRIg9IHhLfH40kak=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=W6DMjBwkVkqLrxAijXfozZGlqgDRFMZxz5a2DUvybu0jXFaBpMX1IdI+bJKExave3\n\tjjrT/U2QTOCe7xGsaAR4TvSaf8gkqEA3yajmYhPzXy+h9fbtWeW1tPkYQAPrM4Gj/C\n\to9qtqjeMVv/Htl2htIOBz15xQxEAdgvRzM1JDqAJ3+XzCqPJMnpXEGB8AhZpiLT43t\n\tKk/uWfTy/qdsO78AZgfA/depsQl+cUYe+2g21GwxDqSGKn1RW48AVlqZT1E75kMmei\n\tMRMilk8NG1CQgxb9TRZXbOnn/owKr+XIcsO3qHJUQnfkDBx8PsGlh26MkYEuuDMDHm\n\t2og1C+w1rzjCw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1651137550;\n\tbh=HXYVHKwnSac/J1Qxaf93KYH5KipJRIg9IHhLfH40kak=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=B/ani4SYirqdS7fKDMHvFdbqBGOatW1f8C0EBBRwY66tZP611P8JrDqbWs/jVXpRR\n\tvkYISOXEfnLreMdaqkHAKd9QH8NrcOkTwAHhq3cUJb5NLX2bEdCFoeT4M7HzhaVRTw\n\tTFB8bPav8JQIFMWO8Ecnf9XZODSJIdgef905YMlM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"B/ani4SY\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220427152640.2192-1-ecurtin@redhat.com>","References":"<20220427152640.2192-1-ecurtin@redhat.com>","To":"Eric Curtin <ecurtin@redhat.com>, libcamera-devel@lists.libcamera.org","Date":"Thu, 28 Apr 2022 10:19:07 +0100","Message-ID":"<165113754793.4076486.17637849329422147339@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] libcamera: base: Make\n\tMutexLocker(Mutex &mutex) non-blocking","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22809,"web_url":"https://patchwork.libcamera.org/comment/22809/","msgid":"<CAOgh=FzvjtDKs4Bpr1yyf7rBpH_8RipVia4SEZw0Xmto9qZNBw@mail.gmail.com>","date":"2022-04-28T11:04:54","subject":"Re: [libcamera-devel] [PATCH] libcamera: base: Make\n\tMutexLocker(Mutex &mutex) non-blocking","submitter":{"id":101,"url":"https://patchwork.libcamera.org/api/people/101/","name":"Eric Curtin","email":"ecurtin@redhat.com"},"content":"On Thu, 28 Apr 2022 at 10:19, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Quoting Eric Curtin via libcamera-devel (2022-04-27 16:26:40)\n> > Camera::acquire claims to be non-blocking, in order to achieve this,\n> > std::unique_lock<std::mutex> constructor must be called with\n> > try_to_lock so it doesn't block if a lock cannot be obtained.\n> >\n> > Bug: https://bugs.libcamera.org/show_bug.cgi?id=127\n> > Signed-off-by: Eric Curtin <ecurtin@redhat.com>\n> > ---\n> >  include/libcamera/base/mutex.h | 2 +-\n> >  1 file changed, 1 insertion(+), 1 deletion(-)\n> >\n> > diff --git a/include/libcamera/base/mutex.h b/include/libcamera/base/mutex.h\n> > index 2d23e49e..c4a5f791 100644\n> > --- a/include/libcamera/base/mutex.h\n> > +++ b/include/libcamera/base/mutex.h\n> > @@ -45,7 +45,7 @@ class LIBCAMERA_TSA_SCOPED_CAPABILITY MutexLocker final\n> >  {\n> >  public:\n> >         explicit MutexLocker(Mutex &mutex) LIBCAMERA_TSA_ACQUIRE(mutex)\n> > -               : lock_(mutex.mutex_)\n> > +               : lock_(mutex.mutex_, std::try_to_lock)\n>\n> Does the code in question already call MutexLocker::try_lock(), but it\n> still blocks?\n\nBy default, the std::unique_lock<Mutex>::unique_lock constructor tries\nto obtain a blocking lock.\n\n>\n> I.e. - does this just enable / allow calling lock_.try_lock() where\n> before callers would block regardless?\n\nYeah it just makes it non-blocking, so if it can't obtain a lock, it just fails.\n\n>\n> I can't quite grasp what the implications are here on other locations\n> that would like to block ... does it make all calls to lock()\n> non-blocking now? (even if they need it to be?)\n\nYes, this change probably is too broad, we could alternatively just\ncall the other constructor for this case alone, that's probably more\ncorrect. Will resubmit this way.\n\n>\n> https://en.cppreference.com/w/cpp/thread/lock_tag_t doesn't seem to make\n\nI found this link better personally:\n\nhttps://en.cppreference.com/w/cpp/thread/unique_lock/unique_lock\n\n> it clear what the full effects are :-(\n>\n> --\n> Kieran\n>\n>\n>\n> >         {\n> >         }\n> >\n> > --\n> > 2.35.1\n> >\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B0599C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 28 Apr 2022 11:05:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 03B81604A6;\n\tThu, 28 Apr 2022 13:05:17 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4FC276042D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Apr 2022 13:05:15 +0200 (CEST)","from mail-ot1-f71.google.com (mail-ot1-f71.google.com\n\t[209.85.210.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\tus-mta-640-jO7gmuY3OumTC8ejmQJ7eg-1; Thu, 28 Apr 2022 07:05:13 -0400","by mail-ot1-f71.google.com with SMTP id\n\tq21-20020a056830233500b00605db4a91a0so1599932otg.17\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Apr 2022 04:05:13 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1651143917;\n\tbh=mQ7gOZQ9wn+U+kphMXRMqY3APwjHeIV0JxFTpCg+rvQ=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=jneDQHMfvGOW2vhaZ0EUu3qWHf4qEcx/apYJWvmdMn8lwknB2QhjMaplSppqbTxSB\n\tmTtjCV3FsIRetIvrjWphh9E9rh8ooLQOC4qryQ68If2Ix2UQriB+La3HaA9kWOjRP+\n\te6YJmJfVG6FXJsTg2Vj7TfTAosIPZSAM3WM/jpHUnR72zg/HkSFGpsr4bsfhpP5nAC\n\tOvV4o2Gx9IUQhz0WamlEwG9vesv6LbkQ5xo+r38jyQHWZ+Yr/KPBPguoM1p0PPme2G\n\tP34A/FAD96KHxzCyVyc6CDwgCAYOi10cHAa/1CPnG8GPEuO+ZcRr2NzQ5jkDJgdSsl\n\tmDM3VvMKdZ7CQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1651143914;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=k9U5yjnVWqKHBN5l5dYEM2FzC3NUkkuYO7cVHA4Li1Y=;\n\tb=YRSa1fYRNNOYVvF2AzHij+mJi2e9JbFxMUXfyBQLjGBcTFbUw8H/DgTtSrwttbAriKp8Ur\n\txcHjQEFbni9Qlxa3t4F0f33YzYyrI0TQkM45Rwy8e37wdTda8qLGSR2lI5G1ARQEGKYcV0\n\tHXqTHsB9M0/EpIjOw3NGeqbH1OY9nok="],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"YRSa1fYR\"; \n\tdkim-atps=neutral","relay.mimecast.com;\n\tauth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ecurtin@redhat.com"],"X-MC-Unique":"jO7gmuY3OumTC8ejmQJ7eg-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=k9U5yjnVWqKHBN5l5dYEM2FzC3NUkkuYO7cVHA4Li1Y=;\n\tb=oL8ACiJmWGA7a939Tjxj9kaT2BRHIyssTl+Pbsvm+9R4wb/twoRpxC1+LMzqcQhJCy\n\tgn+K5syUUcfUlSHTpSUhIjtCXGwjGWOzu0udJS/9IOG7FDpTNPkYgRhATh1zCY/jEgKu\n\tKwPW2Tdg/6sh7PlgrH6FdRMosMsViyCf1SuPdtAi2X4XV6gsW5vIAXslJWlZw+OwnAy7\n\t5LUf3VucUw67xxsLF3FG4agJcDOyrjlC7rEWW2cAi+/nr+J/LpnUVq/QTT72mSlBHJSO\n\tCx0Nkqzs9wyVqY85FZeNphgmNhWs6k9IX1d0zFqCNDhpUvuDRb6c3jlq4+bjvvbJakK5\n\tbdzQ==","X-Gm-Message-State":"AOAM531iq4rBFwJQbTC//Nl7pumNG0QN+UAb2cgfXC6ajjg2p0Zb82R6\n\tRQSpkEU35CLxMKxAqXVz5+92Wzxlg6U8q/i+Z0/axOWogLKTAKq+Lth2wFIJXA6Qq2FHVnxRDHt\n\t6SYfDLEEovuI5wTt+GMsX+6w86Nx88R8sQuAxegHuvN1aLD0oPA==","X-Received":["by 2002:a05:6808:1995:b0:322:e567:f69e with SMTP id\n\tbj21-20020a056808199500b00322e567f69emr18924685oib.251.1651143910285; \n\tThu, 28 Apr 2022 04:05:10 -0700 (PDT)","by 2002:a05:6808:1995:b0:322:e567:f69e with SMTP id\n\tbj21-20020a056808199500b00322e567f69emr18924676oib.251.1651143910033;\n\tThu, 28 Apr 2022 04:05:10 -0700 (PDT)"],"X-Google-Smtp-Source":"ABdhPJw6h2hlAfDEYOy33Uh7fRJOTQ1oixAh2D//40mK7tQJcFL+AnNHtpzQO+GGVj1vvZCaIcmi+euK4ruq+mHfalg=","MIME-Version":"1.0","References":"<20220427152640.2192-1-ecurtin@redhat.com>\n\t<165113754793.4076486.17637849329422147339@Monstersaurus>","In-Reply-To":"<165113754793.4076486.17637849329422147339@Monstersaurus>","Date":"Thu, 28 Apr 2022 12:04:54 +0100","Message-ID":"<CAOgh=FzvjtDKs4Bpr1yyf7rBpH_8RipVia4SEZw0Xmto9qZNBw@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] libcamera: base: Make\n\tMutexLocker(Mutex &mutex) non-blocking","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Eric Curtin via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Eric Curtin <ecurtin@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22813,"web_url":"https://patchwork.libcamera.org/comment/22813/","msgid":"<YmsQiC3k46Mgnwt7@pendragon.ideasonboard.com>","date":"2022-04-28T22:09:12","subject":"Re: [libcamera-devel] [PATCH] libcamera: base: Make\n\tMutexLocker(Mutex &mutex) non-blocking","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Eric,\n\nOn Wed, Apr 27, 2022 at 04:26:40PM +0100, Eric Curtin via libcamera-devel wrote:\n> Camera::acquire claims to be non-blocking, in order to achieve this,\n> std::unique_lock<std::mutex> constructor must be called with\n> try_to_lock so it doesn't block if a lock cannot be obtained.\n> \n> Bug: https://bugs.libcamera.org/show_bug.cgi?id=127\n> Signed-off-by: Eric Curtin <ecurtin@redhat.com>\n> ---\n>  include/libcamera/base/mutex.h | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/include/libcamera/base/mutex.h b/include/libcamera/base/mutex.h\n> index 2d23e49e..c4a5f791 100644\n> --- a/include/libcamera/base/mutex.h\n> +++ b/include/libcamera/base/mutex.h\n> @@ -45,7 +45,7 @@ class LIBCAMERA_TSA_SCOPED_CAPABILITY MutexLocker final\n>  {\n>  public:\n>  \texplicit MutexLocker(Mutex &mutex) LIBCAMERA_TSA_ACQUIRE(mutex)\n> -\t\t: lock_(mutex.mutex_)\n> +\t\t: lock_(mutex.mutex_, std::try_to_lock)\n\nWith this change, if the mutex is already locked, MutexLocker will\nhappily continue as if nothing happened. You've certainly made sure\nMutexLocker will not block, by effectively disabling all mutexes in\nlibcamera.\n\nPlease look at the backtrace you've posted in bug 127, and check why\nstd::mutex::lock() blocks indefinitely.\n\n>  \t{\n>  \t}\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id D30B2C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 28 Apr 2022 22:09:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EFB3865641;\n\tFri, 29 Apr 2022 00:09:15 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D95686042F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 29 Apr 2022 00:09:13 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4DA4C496;\n\tFri, 29 Apr 2022 00:09:13 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1651183756;\n\tbh=oHUFS9sZ4BydRVcIPZG8ffCqPuWGe5eB+Kwb7vg/gb8=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=AxrfD1InB7g8AqwkJUvlTNWkokPP9CbcPPV6w4KB9753q+PipSsYBNdAi3f+2tn+I\n\t3mZdziUa/qDWAzE2Pcn2Oh+E/6BmiHlZr5oNhiZMMalRTTOfvKZAt1xqeC3VW+QsDC\n\tej1fjfXRws/qdGa6A6yCWRPwMociScfTuGIgsgNHrb5b0TP45LxF98Z1sFQxJRaDGm\n\tbFQyegbY7Y1ipuSlNQiT2EgrvxEGuCO+M217YJ1aeG0MH4THDpMdORHn079okdYgoG\n\t6b9T77zqo2+dgjOW1qbP2qgLgcail6AKtCFKHt5ajPOPna/FkcTwt9pxyLvlW79k+7\n\tg0j/9TBDvoB5g==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1651183753;\n\tbh=oHUFS9sZ4BydRVcIPZG8ffCqPuWGe5eB+Kwb7vg/gb8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=k+fGQReHjTvjgenbyrmWj83dhxayXZCN7S9yicDibJF6TF+lic69ZLV7VPnYSsBsB\n\tMc9dzt3TRZo+e+mFsF33bJdWaQjslmf4Xz4QcvJaEgYIs16lTagaz8Fmz/TgfX6iVH\n\t2zPTlgPmlKr5+c+7pODw4v/OX49/QETW6d7NPRq8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"k+fGQReH\"; dkim-atps=neutral","Date":"Fri, 29 Apr 2022 01:09:12 +0300","To":"Eric Curtin <ecurtin@redhat.com>","Message-ID":"<YmsQiC3k46Mgnwt7@pendragon.ideasonboard.com>","References":"<20220427152640.2192-1-ecurtin@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220427152640.2192-1-ecurtin@redhat.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: base: Make\n\tMutexLocker(Mutex &mutex) non-blocking","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]