POSIX Threads support
The threads can be manipulated and synchronized using the classes
This group also provides two optional modules with thread-safe collections:
redef_collectionsredefines existing collection to make them thread-safe. This incures a small overhead in all usage of the redefined collections.
concurrent_collectionsintro new thread-safe collections.
Theses services are implemented using the POSIX threads.
You can also use the
is threaded annotation on methods, which makes them run on their own thread.
Methods with self calls are not supported.
A method or function annotated with
is threaded has its return value changed during compilation.
You will get a subclass of
Thread, even if there wasn't a return value before. You can know if the threaded method is done with the
is_done boolean from
A call to the
join method will block the execution until the threaded method is done, or immediatly return if it's already done.
join will return an object typed with the orginial return type, or
null if there wasn't.
- Most services from the Nit library are not thread-safe. You must manage your own mutex to avoid conflicts on shared data.
- FFI's global references are not thread-safe.
For more information:
- See: ̀ examples/threaded_example.nit`