mirror of
https://github.com/vlang/v.git
synced 2025-09-17 03:17:25 -04:00
parent
fb675534b0
commit
298a2a2d7f
@ -122,9 +122,8 @@ fn (mut g Gen) spawn_and_go_expr(node ast.SpawnExpr, mode SpawnGoMode) {
|
|||||||
gohandle_name = '__v_thread'
|
gohandle_name = '__v_thread'
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
opt := if is_opt { '${option_name}_' } else { '' }
|
ret_styp := g.typ(g.unwrap_generic(node.call_expr.return_type)).replace('*', '_ptr')
|
||||||
res := if is_res { '${result_name}_' } else { '' }
|
gohandle_name = '__v_thread_${ret_styp}'
|
||||||
gohandle_name = '__v_thread_${opt}${res}${g.table.sym(g.unwrap_generic(node.call_expr.return_type)).cname}'
|
|
||||||
}
|
}
|
||||||
if is_spawn {
|
if is_spawn {
|
||||||
if g.pref.os == .windows {
|
if g.pref.os == .windows {
|
||||||
|
21
vlib/v/tests/thread_ptr_ret_test.v
Normal file
21
vlib/v/tests/thread_ptr_ret_test.v
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
fn test_main() {
|
||||||
|
foo := spawn get_pointer()
|
||||||
|
ret := foo.wait()
|
||||||
|
assert *ret == 42
|
||||||
|
}
|
||||||
|
|
||||||
|
fn test_opt() {
|
||||||
|
foo := spawn get_pointer_opt()
|
||||||
|
ret := foo.wait()
|
||||||
|
assert *ret? == 42
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_pointer() &int {
|
||||||
|
val := 42
|
||||||
|
return &val
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_pointer_opt() ?&int {
|
||||||
|
val := 42
|
||||||
|
return &val
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user