parallel_map

Types

This type is used to specify the number of workers to spawn

pub type WorkerAmount {
  WorkerAmount(value: Int)
  MatchSchedulersOnline
}

Constructors

  • WorkerAmount(value: Int)

    will spawn that number of workers

  • MatchSchedulersOnline

    will spawn workers to match the amount of schedulers currently online

Functions

pub fn iterator_pmap(
  input: Iterator(a),
  mapping_func: fn(a) -> b,
  num_workers: WorkerAmount,
  timeout_milliseconds: Int,
) -> Iterator(Result(b, Nil))

This function behaves similarly to gleam_stdlib’s iterator.map

Creates an iterator from an existing iterator and a transformation function

Each element in the new iterator will be the result of calling the given function on the elements in the given iterator, with the resulting value wrapped in a Result

If the timeout specified is exceeded while attempting to collect the result of the computation, the element will instead be Error(Nil)

This function also differs from iterator.map in that it will spawn the workers and perform the computation right when it is called, but it does not attempt to collect the result until the iterator is later run

pub fn list_pmap(
  input: List(a),
  mapping_func: fn(a) -> b,
  num_workers: WorkerAmount,
  timeout_milliseconds: Int,
) -> List(Result(b, Nil))

This function behaves similarly to gleam_stdlib’s iterator.map

Returns a new list containing only the elements of the first list after the function has been applied to each one, with the resulting value wrapped in a Result

If the timeout specified is exceeded while attempting to collect the result of the computation, the value will instead be Error(Nil)

Search Document