- concurrent_or(+Goals:list(callable)) is nondet
- Simple interface to concurrent_or/3. Equivalent to
concurrent_or(Vars,Goals,[])
where Vars is a list of all the variables in
Goals.
- concurrent_or(-Vars, +Goals:list(callable), +Options:list(option)) is nondet
- Succeeds once for each solution of each goal in Goals, with Vars bound
to sharing variables in Goals. Goals are executed in parallel. Valid
options are
- on_error(OnError:oneof([stop,continue]))
- If OnError=stop, then an exception occuring in any goal stops all
goals and is propagated back to and then thrown from the main thread.
If OnError=continue, then an exception in a goal terminates only
that thread, with a error message printed. The default is stop.
- queue_factor(K:natural)
- Solutions are communicated via a message queue of size K*
length(Goals)
.
This limits the extent to which threads compute solutions that have not
yet been requested. The default is 1.
Any remaining options are passed to thread_create/3.