{"id":12363,"url":"https://patchwork.libcamera.org/api/1.1/covers/12363/?format=json","web_url":"https://patchwork.libcamera.org/cover/12363/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20210523023155.20268-1-laurent.pinchart@ideasonboard.com>","date":"2021-05-23T02:31:51","name":"[libcamera-devel,0/4] libcamera: thread: Documentation fixes and enhancements","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/12363/mbox/","series":[{"id":2049,"url":"https://patchwork.libcamera.org/api/1.1/series/2049/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2049","date":"2021-05-23T02:31:51","name":"libcamera: thread: Documentation fixes and enhancements","version":1,"mbox":"https://patchwork.libcamera.org/series/2049/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/12363/comments/","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 13FA4C3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 23 May 2021 02:32:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0C2F668922;\n\tSun, 23 May 2021 04:32:03 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6230460510\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 23 May 2021 04:32:01 +0200 (CEST)","from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C3D362A8;\n\tSun, 23 May 2021 04:32:00 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"WcESwXUh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621737121;\n\tbh=nWcGBneTuQ6G+ZNdtL83TDxYYMAIz1R3PTo+J4HXrQo=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=WcESwXUhfp8Z5Ya6nm96i6fONLzmJEITXHhvAN1xP7DdnGiBw32SfspgpPjqJHl9F\n\tD7HT53IBy8M5Hgf4J30if3hWYTSJxPO309oElgPkedHFxG+kHct80Qu8nUz8s2tOSn\n\toXN5BF+2Y+x/EOS5e2apoFqpkwtCaq3m6AiM1VHc=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sun, 23 May 2021 05:31:51 +0300","Message-Id":"<20210523023155.20268-1-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.28.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 0/4] libcamera: thread: Documentation\n\tfixes and enhancements","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello,\n\nThis patch series enhances the documentation of the Thread class and\nthread usage in libcamera. Documentation issues are fixed in patches 1/4\nand 3/4, with patch 2/4 adding an assertion to enforce a documented\nrule. Patch 4/4 then documents race typical conditions when stopping\nthreads.\n\nI'm considering further patches to handle some of the race conditions in\nthe Thread class itself, but until that's ready, this series brings the\ndocumentation in sync with the implementation.\n\nLaurent Pinchart (4):\n  libcamera: thread: Document dispatchMessages() thread-safety\n    requirements\n  libcamera: thread: Enforce dispatchMessages() call context with assert\n  libcamera: thread: Drop doc of asynchronous signals delivery to\n    applications\n  libcamera: thread: Document race condition at stop time\n\n src/libcamera/object.cpp |  8 +++++\n src/libcamera/thread.cpp | 69 ++++++++++++++++++++++++++++++++++------\n 2 files changed, 68 insertions(+), 9 deletions(-)"}