Availability:built-in
 [det]engine_yield(+Term)Called from within the engine, causing engine_next/2 
in the caller to return with Term. A subsequent call to engine_next/2 
causes
engine_yield/1 
to‘return’. This predicate can only be called if the engine 
is not involved in a callback from C, i.e., when the engine calls a 
predicate defined in C that calls back Prolog it is not possible to use 
this predicate. Trying to do so results in a
[det]engine_yield(+Term)Called from within the engine, causing engine_next/2 
in the caller to return with Term. A subsequent call to engine_next/2 
causes
engine_yield/1 
to‘return’. This predicate can only be called if the engine 
is not involved in a callback from C, i.e., when the engine calls a 
predicate defined in C that calls back Prolog it is not possible to use 
this predicate. Trying to do so results in a
permission_error exception.