aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2012-10-29 17:39:32 -0700
committerJosh Blum <josh@joshknows.com>2012-10-29 17:41:05 -0700
commite3452bf969552abf2497dbd7ac8ed093a3f36de3 (patch)
tree742eb9cc5aaa66ef5772eb35fa885fdb57848770 /host/lib/transport
parentcd8a998b2f7249916424b969b0aa75489291152b (diff)
downloaduhd-e3452bf969552abf2497dbd7ac8ed093a3f36de3.tar.gz
uhd-e3452bf969552abf2497dbd7ac8ed093a3f36de3.tar.bz2
uhd-e3452bf969552abf2497dbd7ac8ed093a3f36de3.zip
uhd: added barrier interrupt to work around thread issue
Force the barrier wait to throw a boost::thread_interrupted The threads were not getting the interruption_point on windows.
Diffstat (limited to 'host/lib/transport')
-rw-r--r--host/lib/transport/super_recv_packet_handler.hpp2
-rw-r--r--host/lib/transport/super_send_packet_handler.hpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/host/lib/transport/super_recv_packet_handler.hpp b/host/lib/transport/super_recv_packet_handler.hpp
index 4b96199e2..7a1972690 100644
--- a/host/lib/transport/super_recv_packet_handler.hpp
+++ b/host/lib/transport/super_recv_packet_handler.hpp
@@ -79,6 +79,8 @@ public:
}
~recv_packet_handler(void){
+ _task_barrier_entry.interrupt();
+ _task_barrier_exit.interrupt();
_task_handlers.clear();
}
diff --git a/host/lib/transport/super_send_packet_handler.hpp b/host/lib/transport/super_send_packet_handler.hpp
index 8f943effb..74e893e67 100644
--- a/host/lib/transport/super_send_packet_handler.hpp
+++ b/host/lib/transport/super_send_packet_handler.hpp
@@ -61,6 +61,8 @@ public:
}
~send_packet_handler(void){
+ _task_barrier_entry.interrupt();
+ _task_barrier_exit.interrupt();
_task_handlers.clear();
}