Jekejeke Prolog 1.1.5 (library modules multi-threading)
Jan Burse, created Jul 13. 2016
We have just uploaded the new release of Jekejeke Prolog. We wrapped the multi-threading in a couple of library modules.
- Module "thread":
This module provides new predicates for the management of the life-cycle of a thread. Threads can be created with the predicate thread_new/2 and then started via the predicate thread_start/1. A thread need not be explicitly destroyed, it will automatically be reclaimed by the Java GC when not anymore used.
- Modules "lock", "pipe" and "time":
These modules provide a couple of synchronization, communication and timing primitives. The module lock provides binary mutexes and read write mutexes. The module pipe provides a bounded queue. The module time provides an alarm queue. Threads waiting for a primitive can be interrupted.
- Abort menu item:
We added an abort menu item to the Swing GUI and to the Android GUI of the runtime library and of the development environment. In connection with the predicates setup_call_cleanup/3, thread_abort/1 and thread_join/1 application code can tear down spawned threads.