X-Git-Url: http://nitlanguage.org diff --git a/lib/pthreads/examples/threaded_example.nit b/lib/pthreads/examples/threaded_example.nit index 175c753..66b2076 100644 --- a/lib/pthreads/examples/threaded_example.nit +++ b/lib/pthreads/examples/threaded_example.nit @@ -15,16 +15,34 @@ # limitations under the License. # test for threaded annotation -module threaded_example +module threaded_example is example import pthreads -# the "is threaded" annotation makes this fun run on an other thread +# the `is threaded` annotation makes this method run on an other thread fun foo is threaded do sys.nanosleep(1,0) print "threaded" end -foo +# Parameterized `threaded` method, same as foo, but with parameters +fun bar(i : Int, s : String) is threaded do + sys.nanosleep(2, 0) + print i + print s +end + +# Parameterized `threaded` method with a return type +fun baz(i : Int, j : Int): Int is threaded do + sys.nanosleep(10, 0) + return i + j +end + print "main" -sys.nanosleep(2,0) +foo +bar(10, "parameterized and threaded") +sys.nanosleep(5,0) +var x = baz(2, 3) +print "main, waiting for baz" +var y = x.join +print("baz result : " + y.to_s)