diff options
author | Martin Braun <martin.braun@ettus.com> | 2019-06-01 23:41:47 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:23 -0800 |
commit | 0f8718176993b3460b12720e639b030be9b86943 (patch) | |
tree | 81820aad39192e63837c41e557bb6c559136415b /host/lib/include/uhdlib | |
parent | dc9ca94afaa0a1c049eac934ad1c278deedc6766 (diff) | |
download | uhd-0f8718176993b3460b12720e639b030be9b86943.tar.gz uhd-0f8718176993b3460b12720e639b030be9b86943.tar.bz2 uhd-0f8718176993b3460b12720e639b030be9b86943.zip |
rfnoc: graph: Add commit/release API
Diffstat (limited to 'host/lib/include/uhdlib')
-rw-r--r-- | host/lib/include/uhdlib/rfnoc/graph.hpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/host/lib/include/uhdlib/rfnoc/graph.hpp b/host/lib/include/uhdlib/rfnoc/graph.hpp index fdb4525d1..49dc62551 100644 --- a/host/lib/include/uhdlib/rfnoc/graph.hpp +++ b/host/lib/include/uhdlib/rfnoc/graph.hpp @@ -14,6 +14,7 @@ #include <tuple> #include <memory> #include <deque> +#include <atomic> namespace uhd { namespace rfnoc { namespace detail { @@ -44,7 +45,7 @@ public: //const size_t dst_port); // - /*! Run initial checks for graph + /*! Commit graph and run initial checks * * This method can be called anytime, but it's intended to be called when * the graph has been committed. It will run checks on the graph and run a @@ -52,8 +53,14 @@ public: * * \throws uhd::resolve_error if the properties fail to resolve. */ - void initialize(); + void commit(); + /*! Opposite of commit() + * + * Calling this will disable property propagation until commit() has been + * called an equal number of times. + */ + void release(); private: friend class graph_accessor_t; @@ -254,6 +261,10 @@ private: //! Mutex for to avoid the user from sending one message before another // message is sent std::recursive_mutex _action_mutex; + + //! This counter gets decremented everytime commit() is called. When zero, + // the graph is committed. + std::atomic<size_t> _release_count{1}; }; |