2019-03-31 17:05:09 +08:00
.. _cmd-block:
2018-12-17 09:39:33 +08:00
block - temporarily block delivery of events
2019-01-03 12:10:47 +08:00
============================================
2018-12-17 09:39:33 +08:00
2018-12-18 09:58:24 +08:00
Synopsis
--------
2018-12-17 05:08:41 +08:00
block [OPTIONS...]
2018-12-18 09:58:24 +08:00
2018-12-17 05:08:41 +08:00
2018-12-19 10:44:30 +08:00
Description
2019-01-03 12:10:47 +08:00
-----------
2018-12-17 05:08:41 +08:00
2019-03-31 03:44:07 +08:00
`` block `` prevents events triggered by `` fish `` or the `emit <cmds/emit.html> `__ command from being delivered and acted upon while the block is in place.
2018-12-17 05:08:41 +08:00
2018-12-20 04:02:45 +08:00
In functions, `` block `` can be useful while performing work that should not be interrupted by the shell.
2018-12-17 05:08:41 +08:00
The block can be removed. Any events which triggered while the block was in place will then be delivered.
2018-12-20 04:02:45 +08:00
Event blocks should not be confused with code blocks, which are created with `` begin `` , `` if `` , `` while `` or `` for ``
2018-12-17 05:08:41 +08:00
The following parameters are available:
2018-12-20 04:02:45 +08:00
- `` -l `` or `` --local `` Release the block automatically at the end of the current innermost code block scope
2018-12-17 05:08:41 +08:00
2018-12-20 04:02:45 +08:00
- `` -g `` or `` --global `` Never automatically release the lock
2018-12-17 05:08:41 +08:00
2018-12-20 04:02:45 +08:00
- `` -e `` or `` --erase `` Release global block
2018-12-17 05:08:41 +08:00
2018-12-19 10:44:30 +08:00
Example
2019-01-03 12:10:47 +08:00
-------
2018-12-17 05:08:41 +08:00
2018-12-19 11:14:04 +08:00
::
# 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
2018-12-17 05:08:41 +08:00
2018-12-19 10:44:30 +08:00
Notes
2019-01-03 12:10:47 +08:00
-----
2018-12-17 05:08:41 +08:00
Note that events are only received from the current fish process as there is no way to send events from one fish process to another.