init
goroutine in init
main 1
sub 1
main 2
sub 2
main 3
wait:
  wait start
  wait end
end waiting
value produced after some time: 42
non-blocking goroutine
done with non-blocking goroutine
async interface method call
slept inside func pointer 8
slept inside closure, with value: 20 8
closure go call result: 1
pre-acquired mutex
releasing mutex
acquired mutex from goroutine
released mutex from goroutine
re-acquired mutex
done
called: Foo.Nowait
called: Foo.Wait
  ...waited
done with 'go on interface'
paddedStruct: 5 7
