this is a prototype attempt,
i had 'Ada Randezvous' at Uni when we learned concurrency, but no real work experience so far.
semantics might change in future, syntax will be added later.
Why Tasks & Randezvous' ?
in Real World, 'tasks' are 'interleaved actions', not 'objects that can be run'.
this semantics allows 'actions' to be considered in 'verb' terms, as something that occurs with time.
better 'process model' means 'better understanding' & the 'finer control' over 'concurrent program execution'.
a 'method object' can have one or more of 'tasks units', a 'program units' that are executed concurrently with the rest of an 'Ola AH' program.
task is similar to a thread, as for example in Java Threads.
a method can consist of many of a threads.
task can have 'entries', 'points in execution' where task communicates with outside, accepts requests with input, accepts requests for output ... as in a client-server model, where server is task with an entry, client is a calling task.
if the called task is not ready to service a call on an entry immediately, the calling task waits in a (FIFO) queue associated with the entry.
this interaction between calling task and called task is known as a 'rendezvous'.
a wait on entries can be 'selective', that is, when a task opens for many entries waiting to interact with any of these,
a wait on a selective entry can be 'guarded', when an opening state of each of these entries depends on boolean precondiction(s) that can change as the time flies,
a wait on entry can be 'conditional', after a specified delay another of instructions are executed, acceptance state is left, for a while at least.
see also, if You wish or need, ... : 'Ola AH' Programming Language, Petri Nets & Randezvous Concurrency, an Idiom.