mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
test(fuse): start the size batch clock before the worker
The worker thread's sleeps could begin before the test read the clock, so the elapsed time came out a few milliseconds under the 90 ms bound on a busy runner. Reading the clock first makes the bound hold.
This commit is contained in:
1 parent
6f504d2e83
commit
b860ac3b49
1 file changed
+3
-1
@@ -7312,13 +7312,15 @@ mod size_upgrade_tests {
|
|||||||
fn a_listing_waits_for_the_whole_size_batch_but_not_forever() {
|
fn a_listing_waits_for_the_whole_size_batch_but_not_forever() {
|
||||||
let slot = Arc::new(SizeUpgrade::default());
|
let slot = Arc::new(SizeUpgrade::default());
|
||||||
let worker = slot.clone();
|
let worker = slot.clone();
|
||||||
|
// Read before the spawn: the worker's sleeps can start before this
|
||||||
|
// thread runs again, which made the bound below fail on a busy runner.
|
||||||
|
let started = Instant::now();
|
||||||
let t = std::thread::spawn(move || {
|
let t = std::thread::spawn(move || {
|
||||||
std::thread::sleep(Duration::from_millis(30));
|
std::thread::sleep(Duration::from_millis(30));
|
||||||
worker.chunk_done();
|
worker.chunk_done();
|
||||||
std::thread::sleep(Duration::from_millis(60));
|
std::thread::sleep(Duration::from_millis(60));
|
||||||
worker.finish();
|
worker.finish();
|
||||||
});
|
});
|
||||||
let started = Instant::now();
|
|
||||||
slot.wait_finished(started + Duration::from_secs(5));
|
slot.wait_finished(started + Duration::from_secs(5));
|
||||||
// Past the first chunk, up to the end of the batch.
|
// Past the first chunk, up to the end of the batch.
|
||||||
assert!(started.elapsed() >= Duration::from_millis(90));
|
assert!(started.elapsed() >= Duration::from_millis(90));
|
||||||
|
|||||||
Reference in new issue
Block a user