mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-03 10:37:46 +00:00
d4cb92f27c
The values were stored in the passed object as the values itself (not expanded like is common in the calling convention), and read back after assuming they were expanded. This often works for simple parameters (int, pointer, etc), but not for more complex parameters. Especially when there's padding. Found this while working on `//go:wasmexport`.
30 lines
522 B
Plaintext
30 lines
522 B
Plaintext
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
|