summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-05-21 12:18:54 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-05-22 02:56:25 +0300
commitcc2139ec63c2d062b077c9c221917325c3f30f17 (patch)
tree20a67c0fc52f1ec0f76426ffbe8671bd19b0e9cd
parente56f1f493560e0b641bbe36a528a13767817afed (diff)
libcamera: log: Document LOG() restrictions
The LOG() macro uses the global Logger and LogCategory objects internally. This can result in crashes or other undefined behaviour when logging from destructors of global objects, as the Logger and/or the LogCategory instances may have been destroyed. This isn't ideal and should eventually be fixed. For the time being, document the restriction, and add a todo list item to fix the problem. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/libcamera/log.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcamera/log.cpp b/src/libcamera/log.cpp
index 94175ab3..98595224 100644
--- a/src/libcamera/log.cpp
+++ b/src/libcamera/log.cpp
@@ -980,6 +980,12 @@ LogMessage _log(const LogCategory *category, LogSeverity severity,
*
* If the severity is set to Fatal, execution is aborted and the program
* terminates immediately after printing the message.
+ *
+ * \warning Logging from the destructor of a global object, either directly or
+ * indirectly, results in undefined behaviour.
+ *
+ * \todo Allow logging from destructors of global objects to the largest
+ * possible extent
*/
/**