summaryrefslogtreecommitdiffstats
path: root/src/router/workers.rs
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2019-08-28 16:27:26 +0200
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2019-08-28 16:27:26 +0200
commit6785aa4cb56833131b69f4d2b44301908b1a1b4c (patch)
treed9dc6ec7a3c45291f44ae3e8d707200a1b1da410 /src/router/workers.rs
parentRenamed confirmed -> initator on keypair (diff)
downloadwireguard-rs-6785aa4cb56833131b69f4d2b44301908b1a1b4c.tar.xz
wireguard-rs-6785aa4cb56833131b69f4d2b44301908b1a1b4c.zip
Join with worker threads on device drop
Diffstat (limited to 'src/router/workers.rs')
-rw-r--r--src/router/workers.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/router/workers.rs b/src/router/workers.rs
index 1fd2cdf..4861847 100644
--- a/src/router/workers.rs
+++ b/src/router/workers.rs
@@ -208,7 +208,7 @@ pub fn worker_parallel<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback
local: Worker<JobParallel>, // local job queue (local to thread)
stealers: Vec<Stealer<JobParallel>>, // stealers (from other threads)
) {
- while !device.running.load(Ordering::SeqCst) {
+ while device.running.load(Ordering::SeqCst) {
match find_task(&local, &device.injector, &stealers) {
Some(job) => {
let (handle, buf) = job;
@@ -262,7 +262,6 @@ pub fn worker_parallel<T: Opaque, S: Callback<T>, R: Callback<T>, K: KeyCallback
handle.thread().unpark();
}
None => {
- // no jobs, park the worker
device.parked.store(true, Ordering::Release);
thread::park();
}