For the allocation of parallel computation to threads, the thread function
is used.
Thread takes one free thread out of the thread pool,
transfers arguments via shared memory, wakes up the thread by signaling
the semaphore as indicated in fig. 7,
and returns a thread object to the caller without blocking.
The woken-up thread begins evaluation of
the argument running in parallel to the calling thread.
The caller uses
wait-thread to receive the evaluation result from the forked thread.
The plist macro is a more convenient form to describe parallel
evaluation of arguments.
Plist attaches threads to evaluate each argument
and lists up results after waiting for all threads to finish evaluation.
k-okada
2013-05-21