fdclosor: assign name to thread
This commit is contained in:
parent
604974c927
commit
69c0cf4031
1 changed files with 16 additions and 13 deletions
|
|
@ -16,20 +16,23 @@ impl FdCloser {
|
||||||
cv: Condvar::new(),
|
cv: Condvar::new(),
|
||||||
});
|
});
|
||||||
let slf2 = slf.clone();
|
let slf2 = slf.clone();
|
||||||
std::thread::spawn(move || {
|
std::thread::Builder::new()
|
||||||
let mut fds = vec![];
|
.name("fd closer".to_string())
|
||||||
let mut lock = slf2.fds.lock();
|
.spawn(move || {
|
||||||
loop {
|
let mut fds = vec![];
|
||||||
mem::swap(&mut *lock, &mut fds);
|
let mut lock = slf2.fds.lock();
|
||||||
if fds.len() > 0 {
|
loop {
|
||||||
drop(lock);
|
mem::swap(&mut *lock, &mut fds);
|
||||||
fds.clear();
|
if fds.len() > 0 {
|
||||||
lock = slf2.fds.lock();
|
drop(lock);
|
||||||
} else {
|
fds.clear();
|
||||||
slf2.cv.wait(&mut lock);
|
lock = slf2.fds.lock();
|
||||||
|
} else {
|
||||||
|
slf2.cv.wait(&mut lock);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
});
|
.unwrap();
|
||||||
slf
|
slf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue