summaryrefslogtreecommitdiffstats
path: root/host/docs/general.rst
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-03-08 12:41:23 -0800
committerJosh Blum <josh@joshknows.com>2011-03-08 12:41:23 -0800
commitab6fc7345a0743543e62cd1b3d9681a78d72f8f1 (patch)
treee4212666ec0317d2666d1d75084f613f7d5caabf /host/docs/general.rst
parent01ab237b0fcb22e5098bdda139ca76fe7e5d21cb (diff)
downloaduhd-ab6fc7345a0743543e62cd1b3d9681a78d72f8f1.tar.gz
uhd-ab6fc7345a0743543e62cd1b3d9681a78d72f8f1.tar.bz2
uhd-ab6fc7345a0743543e62cd1b3d9681a78d72f8f1.zip
uhd: thread safety notes and moved some docs to general
Diffstat (limited to 'host/docs/general.rst')
-rw-r--r--host/docs/general.rst28
1 files changed, 28 insertions, 0 deletions
diff --git a/host/docs/general.rst b/host/docs/general.rst
index 50ef24d6c..2894fbf88 100644
--- a/host/docs/general.rst
+++ b/host/docs/general.rst
@@ -9,6 +9,25 @@ Misc notes
------------------------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Thread safety notes
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+For the most part, UHD is thread-safe.
+Please observe the following limitations:
+
+**Fast-path thread requirements:**
+It is safe to call send() and recv() simultaneously. However,
+it is not safe to call recv() simultaneously from different thread contexts.
+The same rule applies for recv(), send(), and recv_async_msg().
+One thread context per fast-path device method at a time.
+
+**Slow-path thread requirements:**
+It is safe to change multiple settings simultaneously. However,
+this could leave the settings for a device in an uncertain state.
+The is because changing one setting could have an impact on how a call affects other settings.
+Example: setting the channel mapping affects how the antennas are set.
+It is recommended to use at most one thread context for manipulating device settings.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Thread priority scheduling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -26,3 +45,12 @@ Add the following line to */etc/security/limits.conf*:
Replace <my_group> with a group to which your user belongs.
Settings will not take effect until the user has logged in and out.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Support for dynamically loadable modules
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+For a module to be loaded at runtime, it must be:
+
+* found in the UHD_MODULE_PATH environment variable,
+* installed into the <prefix>/share/uhd/modules directory,
+* or installed into /usr/share/uhd/modules directory (unix only).