Skip to content

Instantly share code, notes, and snippets.

@bobmcwhirter
Last active December 7, 2020 14:34
Show Gist options
  • Save bobmcwhirter/bd0029d5a7cbaf35e66523096469c6f6 to your computer and use it in GitHub Desktop.
Save bobmcwhirter/bd0029d5a7cbaf35e66523096469c6f6 to your computer and use it in GitHub Desktop.
Compiling drogue-async v0.1.0 (/Users/bob/repos/drogue/drogue-async)
Finished test [unoptimized + debuginfo] target(s) in 1.93s
Running target/debug/deps/drogue_async-bf1f29af935d1cee
running 1 test
2020-12-07 09:33:51,109 ERROR [drogue_async::executor::tests] WHAT
2020-12-07 09:33:51,110 ERROR [drogue_async::executor] spawn!!!
2020-12-07 09:33:51,110 ERROR [drogue_async::executor] spawn!!!
run!
2020-12-07 09:33:51,110 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 1
2020-12-07 09:33:51,110 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 1
loop!
do-poll root-1
2020-12-07 09:33:51,110 ERROR [drogue_async::executor] spawn!!!
2020-12-07 09:33:51,110 ERROR [drogue_async::executor] spawn!!!
polling handle for sub-1
sub-1 is pending
loop!
do-poll root-2
terminated root-2
waking waiter
2020-12-07 09:33:51,110 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,110 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,110 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,110 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,190 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,190 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,190 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,190 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,269 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,269 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,269 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,269 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,347 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,347 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,347 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,347 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,426 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,426 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,426 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,426 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,504 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,504 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,504 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,504 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,582 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,582 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,582 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,582 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,659 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,660 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,660 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,660 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,738 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,738 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,738 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,738 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
loop!
do-poll sub-2
2020-12-07 09:33:51,815 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 0
2020-12-07 09:33:51,815 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,815 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 1
2020-12-07 09:33:51,815 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 1
loop!
do-poll sub-1
terminated sub-1
waking waiter
loop!
do-poll sub-2
terminated sub-2
waking waiter
2020-12-07 09:33:51,892 TRACE [drogue_async::executor] root-1 is ready? 0x101cc0778 1
2020-12-07 09:33:51,892 TRACE [drogue_async::executor] root-2 is ready? 0x101cc07d0 2
2020-12-07 09:33:51,892 TRACE [drogue_async::executor] sub-1 is ready? 0x101cc0808 2
2020-12-07 09:33:51,893 TRACE [drogue_async::executor] sub-2 is ready? 0x101cc0848 2
loop!
do-poll root-1
polling handle for sub-1
sub-1 is ready
polling handle for sub-2
sub-2 is ready
terminated root-1
waking waiter
2020-12-07 09:33:51,893 INFO [drogue_async::executor] terminating
v1=22, v2=howdy
test executor::tests::recurse ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out
Doc-tests drogue-async
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
#[cfg(test)]
mod tests {
use crate::executor::{Executor, spawn, run, defer};
use simple_logger::SimpleLogger;
#[test]
fn recurse() {
SimpleLogger::new().init().unwrap();
log::error!("WHAT");
init_executor!( 1024 );
let j1 = spawn("root-1", async move {
let s1 = spawn("sub-1", async move {
for i in 1..10_000_000 {
if i % 1_000_000 == 0 {
defer().await;
}
continue;
}
19
});
let s2 = spawn("sub-2", async move {
for i in 1..10_000_000 {
if i % 1_000_000 == 0 {
defer().await;
}
continue;
}
22
});
s1.unwrap().await;
s2.unwrap().await
}).unwrap();
let j2 = spawn("root-2", async move {
"howdy"
}).unwrap();
run();
let v1 = j1.join();
let v2 = j2.join();
println!("v1={}, v2={}", v1, v2);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment