mirror of
https://github.com/vlang/v.git
synced 2025-09-16 02:49:31 -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'
|
||||
}
|
||||
} else {
|
||||
opt := if is_opt { '${option_name}_' } else { '' }
|
||||
res := if is_res { '${result_name}_' } else { '' }
|
||||
gohandle_name = '__v_thread_${opt}${res}${g.table.sym(g.unwrap_generic(node.call_expr.return_type)).cname}'
|
||||
ret_styp := g.typ(g.unwrap_generic(node.call_expr.return_type)).replace('*', '_ptr')
|
||||
gohandle_name = '__v_thread_${ret_styp}'
|
||||
}
|
||||
if is_spawn {
|
||||
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