typedef enum { PETSC_STREAM_GLOBAL_BLOCKING = 0, PETSC_STREAM_DEFAULT_BLOCKING = 1, PETSC_STREAM_GLOBAL_NONBLOCKING = 2, PETSC_STREAM_MAX = 3 } PetscStreamType;
PETSC_STREAM_GLOBAL_BLOCKING - Alias for NULL stream. Any stream of this type will block the host for all other streams to finish work before starting its operations.
PETSC_STREAM_DEFAULT_BLOCKING - Stream will act independent of other streams, but will still be blocked by actions on the NULL stream.
PETSC_STREAM_GLOBAL_NONBLOCKING - Stream is truly asynchronous, and is blocked by nothing, not even the NULL stream.
PETSC_STREAM_MAX - Always 1 greater than the largest PetscStreamType, do not use