
A bitcast was inserted when the receiver of the call wasn't a *i8. This is a pretty common case, and did not play well with goroutines. Avoid this bitcast by changing each call to a direct call, after unpacking the receiver type from the *i8 parameter. This might also fix some undefined behavior in the resulting program, as it is technically not allowed to call a function with a different signature (even if the signature is compatible).
12 строки
159 Б
Text
12 строки
159 Б
Text
main 1
|
|
sub 1
|
|
main 2
|
|
sub 2
|
|
main 3
|
|
wait:
|
|
wait start
|
|
wait end
|
|
end waiting
|
|
non-blocking goroutine
|
|
done with non-blocking goroutine
|
|
async interface method call
|