v2 / vlib / v / tests / concurrency / spawn_with_different_method_receivers_test.v
23 lines · 19 sloc · 477 bytes · 769699ede6edba13f86c59d7a0ba9ec848f5fd93
Raw
1struct Server {}
2
3fn (server Server) non_mutable_receiver() {
4 println(@LOCATION)
5}
6
7fn (mut s Server) mutable_receiver() {
8 println(@LOCATION)
9}
10
11fn (s &Server) reference_receiver() {
12 println(@LOCATION)
13}
14
15fn test_spawning_threads_with_methods_that_have_mutable_and_non_mutable_receivers() {
16 mut server := &Server{}
17 t1 := spawn server.non_mutable_receiver()
18 t2 := spawn server.mutable_receiver()
19 t3 := spawn server.reference_receiver()
20 t1.wait()
21 t2.wait()
22 t3.wait()
23}
24