[{"id":525,"web_url":"https://patchwork.libcamera.org/comment/525/","msgid":"<20190123131959.GN4127@bigcity.dyn.berto.se>","date":"2019-01-23T13:19:59","subject":"Re: [libcamera-devel] [PATCH 0/4] Event dispatcher enhancements","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your work.\n\nWith the comment Kieran brings up about the possible collision with \npoll() in 2/4 addressed, for the whole series\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\nOn 2019-01-23 10:59:19 +0200, Laurent Pinchart wrote:\n> Hello,\n> \n> This patch series enhances the event dispatcher with two new features.\n> In patch 2/4 we get EINTR support to automatically restart the ppoll()\n> call if it gets interrupted by a signal, and in patch 3/4 the event\n> dispatcher API is extended with a function to interrupt in-progress\n> processEvents() calls. This is needed in order to interrupt event loops\n> gracefully.\n> \n> The series starts in patch 1/4 by adding a test that fails, to outline\n> missing EINTR support, which is then fixed by patch 2/4. It ends with\n> another test case for the new EventDispatcher::interrupt() method.\n> \n> Laurent Pinchart (4):\n>   tests: Test event dispatcher interruption by signal\n>   libcamera: event_dispatcher_poll: Handle interrupted ppoll() calls\n>   libcamera: event_dispatcher: Add interrupt() function\n>   tests: event-dispatcher: Add processEvents() interruption test\n> \n>  include/libcamera/event_dispatcher.h          |   2 +\n>  src/libcamera/event_dispatcher.cpp            |  10 ++\n>  src/libcamera/event_dispatcher_poll.cpp       |  82 ++++++++++----\n>  src/libcamera/include/event_dispatcher_poll.h |   4 +\n>  test/event-dispatcher.cpp                     | 103 ++++++++++++++++++\n>  test/meson.build                              |   9 +-\n>  6 files changed, 184 insertions(+), 26 deletions(-)\n>  create mode 100644 test/event-dispatcher.cpp\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x141.google.com (mail-lf1-x141.google.com\n\t[IPv6:2a00:1450:4864:20::141])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 36B4960C7D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Jan 2019 14:20:02 +0100 (CET)","by mail-lf1-x141.google.com with SMTP id n18so1553942lfh.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Jan 2019 05:20:02 -0800 (PST)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\ta20-v6sm507856ljf.28.2019.01.23.05.20.00\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tWed, 23 Jan 2019 05:20:00 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=SecnrXBOs1TRfMLyq93BTb5XTgtuU1pGT9JkkbJ0d58=;\n\tb=RFkhdpCjqBA3JrSo91Yhuf+GPd9hnDtIyptVuW/6i5f/mJGnfN/Qy7/o02h5k26QTC\n\tuJGDFJzeWicIlugBwDbnMEzD8UddEYlDM+xmXGheKdyxUpeoaeJxGWiOIavjZqYrUj7q\n\tRhr2VRDTofjTEm6CuZrIjQiHRBlR3vkgPCqKTHPaJ4piXHgDi9nKE5G8yRT4ejoohxt5\n\tvGPWd2AFuKUbVPd3NBgUswgPaZns2d/yIjecCZhHub+QIZAyvQ68Bx876uExPqAtqO9e\n\tlz6P08QSOkCSD3Kq4FPwhKHiP1cxQY+JYUMqoqfnCKAD7Z7xhJHH+d9jqc6M9mUD3Ybl\n\t9Xgg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=SecnrXBOs1TRfMLyq93BTb5XTgtuU1pGT9JkkbJ0d58=;\n\tb=PMaEq7ZMB+NJKgmnauckrrLKCJBS5uYbTBnQMWgQJe0p0gFkCQ7K04UAiU9GYWbhrF\n\tpD5J6neaoB6y7FWjDG2AcmSJ/wNnL+DTP3DhvWzD5Mq2KBY0WPZqbwjip5frqyLveOFP\n\t+ef9uEgRlNhLCb/Cm7NDtLpwHGX9dmIxFHAe5D5gs17+IC6AhXW1nU1xqb66NfRpS9c3\n\tCJ7utm8anb8r2yZq8EztydyDcp+qziVm21wjZxTy5Vvc6bm+rJLLn2exe4Kg4opNAL6X\n\tmuGzg8nF116oHTOOhOWGc+DLcdrx9k4tZrfxIvZPxwJqe5kKH3IOo4A2+nryNglsLaaU\n\tiIaA==","X-Gm-Message-State":"AJcUukfasuLe8Esz1EgkaU3Gb3sy6pHplRLP413a32S0WvFJcu7tY3wK\n\t/+ITpEZcgS9WvfzMN5NlONIMjpf9Yoo=","X-Google-Smtp-Source":"ALg8bN51ZuS8OUQIRDLzxwMbs8dbRUk2LiQPUPRqgVSaHaEE9vFVoTZOoU1ucZn7A7OOokwTAeEZ+w==","X-Received":"by 2002:a19:982:: with SMTP id 124mr1897924lfj.138.1548249601318;\n\tWed, 23 Jan 2019 05:20:01 -0800 (PST)","Date":"Wed, 23 Jan 2019 14:19:59 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190123131959.GN4127@bigcity.dyn.berto.se>","References":"<20190123085923.12524-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190123085923.12524-1-laurent.pinchart@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 0/4] Event dispatcher enhancements","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Wed, 23 Jan 2019 13:20:02 -0000"}}]