Definition of fold from Play! API is
as the folding function takes two different types A , E does this mean this operation is not run in parallel ?
As according to Fold and foldLeft method difference the type signature of fold (from Scala API) :
the op function takes two of same types (A1), this allows the operation to be run in parallel.
The fold operation itself is implemented in a new thread using ExecutionContext
which is passed as an implicit. The fold type signature suggests it cannot be implemented in parallel, Iteratee.fold creates a new thread for the fold operation and therefore is non blocking. In summary fold is not a parallel operation but is non-blocking ? This is in contrast to Scala fold operation which can be run in parallel.