summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-11-27 05:16:56 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-12-09 15:32:40 +0200
commit7df177fd889624c4b149ba2ecabb4969ad8c2bee (patch)
treeb8ebfe9bea24890196f4e01256ac3004608abfa5
parent07e3933570979046124c517b22cf4420daf4102f (diff)
libcamera: object: Document danger of deleting object from other thread
Object instances receive messages dispatched from the event loop of the thread they belong to. Deleting an object from a different thread is thus dangerous, unless the caller ensures that no message delivery is in progress. Document this in the Object class documentation. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--src/libcamera/object.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp
index 1f787271..e76faf48 100644
--- a/src/libcamera/object.cpp
+++ b/src/libcamera/object.cpp
@@ -40,6 +40,10 @@ LOG_DEFINE_CATEGORY(Object)
* implementing easy message passing between threads by inheriting from the
* Object class.
*
+ * Deleting an object from a thread other than the one the object is bound to is
+ * unsafe, unless the caller ensures that the object isn't processing any
+ * message concurrently.
+ *
* Object slots connected to signals will also run in the context of the
* object's thread, regardless of whether the signal is emitted in the same or
* in another thread.