Back to Fish Shell

block - temporarily block delivery of events

doc_src/cmds/block.rst

4.6.01.4 KB
Original Source

block - temporarily block delivery of events

Synopsis

.. synopsis::

block [(--local | --global)]
block --erase

Description

block delays delivery of all events triggered by fish or the :doc:emit <emit>, thus delaying the execution of any function registered --on-event, --on-process-exit, --on-job-exit, --on-variable and --on-signal until after the block is removed.

Event blocks should not be confused with code blocks, which are created with begin, if, while or for

Without options, block sets up a block that is released automatically at the end of the current function scope.

The following options are available:

-l or --local Release the block automatically at the end of the current innermost code block scope.

-g or --global Never automatically release the lock.

-e or --erase Release global block.

-h or --help Display help about using this command.

Example

::

# Create a function that listens for events
function --on-event foo foo; echo 'foo fired'; end

# Block the delivery of events
block -g

emit foo
# No output will be produced

block -e
# 'foo fired' will now be printed

Notes

Events are only received from the current fish process as there is no way to send events from one fish process to another.