core :: union_find
union–find algorithm using an efficient disjoint-set data structure
# test for threaded annotation
module threaded_example is example
import pthreads
# the `is threaded` annotation makes this method run on an other thread
fun foo is threaded do
sys.nanosleep(1,0)
print "threaded"
end
# 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"
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)
lib/pthreads/examples/threaded_example.nit:17,1--48,31