From cb1649d201e41c85ed77256712309706ed1a805d Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Fri, 21 Apr 2017 22:33:16 -0700 Subject: 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. --- host/tests/CMakeLists.txt | 1 + host/tests/tasks_test.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 host/tests/tasks_test.cpp (limited to 'host/tests') diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt index ebda2cf70..bfbf57b41 100644 --- a/host/tests/CMakeLists.txt +++ b/host/tests/CMakeLists.txt @@ -45,6 +45,7 @@ SET(test_sources sph_send_test.cpp subdev_spec_test.cpp time_spec_test.cpp + tasks_test.cpp vrt_test.cpp expert_test.cpp fe_conn_test.cpp 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 . +// + +#include +#include +#include +#include +#include +#include + +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 test_vec; + + for (size_t i = 0; i < N_TASKS; i++) { + test_vec.push_back(uhd::task::make([i](){ test_tasks_sleep(i); })); + } +} -- cgit v1.2.3