libyang DOC add brief thread information
diff --git a/src/context.h b/src/context.h
index fb487e7..f540bd4 100644
--- a/src/context.h
+++ b/src/context.h
@@ -36,8 +36,9 @@
  *
  * The first step with libyang is to create a new context using ::ly_ctx_new(). It returns a handler used in the following work.
  * Note that the context is supposed to provide a stable environment for work with the data. Therefore the caller should prepare
- * a complete context and after starting working with the data, the context and its content should not change. Despite the API
- * does not enforce this approach, it may change in future versions in the form of a locking mechanism which would allow further
+ * a complete context and after starting working with the data, the context and its content should not change. If it does,
+ * in most cases it leads to the context being recompiled and any parsed data invalid. Despite the API not enforcing this
+ * approach, it may change in future versions in the form of a locking mechanism which would allow further
  * optimization of data manipulation. Also note that modules cannot be removed from their context. If you need to change the set
  * of the schema modules in the context, the recommended way is to create a new context. To remove the context, there is ::ly_ctx_destroy() function.
  *
diff --git a/src/libyang.h b/src/libyang.h
index 7733def..ddf9bc3 100644
--- a/src/libyang.h
+++ b/src/libyang.h
@@ -132,6 +132,22 @@
  */
 
 /**
+ * @page howtoThreads Threading Limitations
+ *
+ * @section context Context
+ *
+ * It is safe to read from ::ly_ctx structure concurrently and use its dictionary, which is protected by a lock.
+ * Thread-safe functions include any ones working with data trees (only context dictionary is accessed) and all
+ * the `ly_ctx_get_*()` functions. Generally, they are the functions with `const` context parameter.
+ *
+ * @section data Data Trees
+ *
+ * Data trees are not internally synchronized so the general safe practice of a single writer **or** several concurrent
+ * readers should be followed. Specifically, only the functions with non-const ::lyd_node parameters modify the node(s)
+ * and no concurrent execution of such functions should be allowed on a single data tree or subtrees of one.
+ */
+
+/**
  * @internal
  * @page internals Developers' Notes
  * @tableofcontents