pthreads :: concurrent_collections
Introduces thread-safe concurrent collectionscore :: union_find
union–find algorithm using an efficient disjoint-set data structure
# Simple example of joinable task using threadpool
module jointask_example is example
import threadpool
# Task computing a string
class StringTask
	super JoinTask
	# Sleeping time
	var sec: Int
	# result of `self` execution
	var value: String
	# ID for printing
	var id: Int
	redef fun main do
		nanosleep(sec, 0)
		value += " id: {id}"
	end
end
var tp = new ThreadPool
var t0 = new StringTask(10, "First, long task", 0)
var tasks = new Array[StringTask]
for i in 5.times do
	tasks.add(new StringTask(1, "Small task", i + 1))
end
tp.execute(t0)
for t in tasks do tp.execute(t)
for t in tasks do
	t.join
	print t.value
end
t0.join
print t0.value
lib/pthreads/examples/jointask_example.nit:15,1--52,14