diff options
author | Martin Braun <martin.braun@ettus.com> | 2017-04-21 22:33:16 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-06-28 15:54:39 -0700 |
commit | cb1649d201e41c85ed77256712309706ed1a805d (patch) | |
tree | 1aaa11ac2bba1eb95edc9303b3ad42fc254913d5 /host/tests/tasks_test.cpp | |
parent | f19e4602f10fb86dceb4d65d75741f98a054a7df (diff) | |
download | uhd-cb1649d201e41c85ed77256712309706ed1a805d.tar.gz uhd-cb1649d201e41c85ed77256712309706ed1a805d.tar.bz2 uhd-cb1649d201e41c85ed77256712309706ed1a805d.zip |
uhd: tasks now use std::threads under the hood, and can't be interrupted
USRP1 and USRP2 used tasks that relied on Boost thread interruption
mechanisms. These were replaced with explicit atomics.
Diffstat (limited to 'host/tests/tasks_test.cpp')
-rw-r--r-- | host/tests/tasks_test.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/host/tests/tasks_test.cpp b/host/tests/tasks_test.cpp new file mode 100644 index 000000000..225582591 --- /dev/null +++ b/host/tests/tasks_test.cpp @@ -0,0 +1,38 @@ +// +// Copyright 2010-2011 Ettus Research LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// + +#include <boost/test/unit_test.hpp> +#include <uhd/utils/tasks.hpp> +#include <thread> +#include <chrono> +#include <vector> +#include <iostream> + +void test_tasks_sleep(size_t usecs) +{ + std::this_thread::sleep_for(std::chrono::milliseconds(usecs)); +} + +BOOST_AUTO_TEST_CASE(tasks_test) { + + static const size_t N_TASKS = 100; + std::vector<uhd::task::sptr> test_vec; + + for (size_t i = 0; i < N_TASKS; i++) { + test_vec.push_back(uhd::task::make([i](){ test_tasks_sleep(i); })); + } +} |