Hi Guilers,
I'm happy to announce the first release of guile-parallel. A library
that offers primitives for parallelization of your programs.
Project page: <https://git.sr.ht/~old/guile-parallel>
List of features:
- Userspace threads (jobs schedulers)
- Safe dynamic-wind for all types of threads (kernel and userspace)
- sleep, usleep and nsleep for all types of threads
- (ice-9 atomic) extensions, e.g. atomic counters
- (ice-9 q) wrapper, i.e. safe for all types of threads
- Barriers à la Pthread
- Condition variables, mutexes and semaphores for kernel and userspace
threads
- Parallel vector-map vector-count, vector-sort, vector-map-reduce
Next features:
- Asynchronous I/O
- Channels à la Go with a select syntax (maybe?)
If there're interests, usages or requests for it, please let me know! I
might add it to Guix if some find it useful.
Regards,
old