aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc_src/block.txt
blob: 0f4cff3832f67ea29a75aaf2959f8c547e246b29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
\section block block - temporarily block delivery of events

\subsection block-synopsis Synopsis
 <tt>block [OPTIONS...]</tt>

\subsection block-description Description

\c block prevents events triggered by \c fish or the
<a href="commands.html#emit"><code>emit</code></a> command from
being delivered and acted upon while the block is in place.

In functions, \c block can be useful while performing work that
should not be interrupted by the shell.

The block can be removed. Any events which triggered while the
block was in place will then be delivered.

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

The following parameters are available:

- <tt>-l</tt> or <tt>--local</tt> Release the block automatically at the end of the current innermost code block scope
- <tt>-g</tt> or <tt>--global</tt> Never automatically release the lock
- <tt>-e</tt> or <tt>--erase</tt> Release global block

\subsection block-example Example

<pre>
# 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
</pre>