mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 07:19:45 +03:00
libcamera: object: Add and use thread-bound assertion
Several functions in libcamera classes are marked as thread-bound, restricting the contexts in which those functions can be called. There is no infrastructure to enforce these restrictions, causing difficult to debug race conditions when they are not met by callers. As a first step to solve this, add an assertThreadBound() protected function to the Object class to test if the calling thread context is valid, and use it in member functions of Object subclasses marked as thread-bound. This replaces manual tests in a few locations. The thread-bound member functions of classes that do not inherit from Object are not checked, and neither are the functions of classes marked as thread-bound at the class level. These issue should be addressed in the future. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
This commit is contained in:
parent
56f817892c
commit
6f1bd9cf55
4 changed files with 42 additions and 8 deletions
|
@ -49,6 +49,8 @@ public:
|
|||
protected:
|
||||
virtual void message(Message *msg);
|
||||
|
||||
bool assertThreadBound(const char *message);
|
||||
|
||||
private:
|
||||
friend class SignalBase;
|
||||
friend class Thread;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue