[libcamera-devel] [PATCH v3 07/17] py: Set EFD_CLOEXEC on eventfd to avoid fd leaking

Tomi Valkeinen tomi.valkeinen at ideasonboard.com
Thu Aug 18 16:52:03 CEST 2022


On 18/08/2022 17:25, Jacopo Mondi wrote:
> Hi Tomi
> 
> On Fri, Jul 01, 2022 at 11:45:11AM +0300, Tomi Valkeinen wrote:
>> Set EFD_CLOEXEC on eventfd to avoid fd leaking.
>>
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
>> ---
>>   src/py/libcamera/py_camera_manager.cpp | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/py/libcamera/py_camera_manager.cpp b/src/py/libcamera/py_camera_manager.cpp
>> index 51a890c8..3d422c9e 100644
>> --- a/src/py/libcamera/py_camera_manager.cpp
>> +++ b/src/py/libcamera/py_camera_manager.cpp
>> @@ -22,7 +22,7 @@ PyCameraManager::PyCameraManager()
>>
>>   	cameraManager_ = std::make_unique<CameraManager>();
>>
>> -	int fd = eventfd(0, 0);
>> +	int fd = eventfd(0, EFD_CLOEXEC);
> 
> Or you could
> 
>          eventfd_ = UniqueFd(eventfd((0, EFD_CLOEXEC));
>          if (!eventfd_.isValid())

Yes... But that hides the eventfd() a bit there. And makes the line 
longer, especially after we add the EFD_NONBLOCK. Nothing big, but I do 
like the current style better.

  Tomi


More information about the libcamera-devel mailing list