mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 06:46:12 +08:00
5917ae8baf
Preparation to implement trapping in non-interactive mode.
52 lines
845 B
Fish
52 lines
845 B
Fish
# RUN: %fish %s
|
|
|
|
set -g SIGUSR1_COUNT 0
|
|
|
|
function gotsigusr1
|
|
set -g SIGUSR1_COUNT (math $SIGUSR1_COUNT + 1)
|
|
echo "Got USR1: $SIGUSR1_COUNT"
|
|
|
|
end
|
|
|
|
function handle1 --on-signal SIGUSR1
|
|
gotsigusr1
|
|
end
|
|
|
|
function handle_us42 --on-signal SIGUSR2
|
|
end
|
|
|
|
kill -USR1 $fish_pid
|
|
sleep .1
|
|
#CHECK: Got USR1: 1
|
|
|
|
kill -USR1 $fish_pid
|
|
sleep .1
|
|
#CHECK: Got USR1: 2
|
|
|
|
kill -USR2 $fish_pid
|
|
sleep .1
|
|
kill -USR2 $fish_pid
|
|
sleep .1
|
|
|
|
# Previous signals do not re-trigger handlers.
|
|
functions --erase handle1
|
|
kill -USR1 $fish_pid
|
|
sleep .1
|
|
kill -USR1 $fish_pid
|
|
sleep .1
|
|
|
|
kill -USR2 $fish_pid
|
|
sleep .1
|
|
|
|
# Send the signal and immediately define the function; it should not excute.
|
|
kill -USR1 $fish_pid
|
|
function handle1 --on-signal SIGUSR1
|
|
gotsigusr1
|
|
end
|
|
echo "Hope it did not run"
|
|
#CHECK: Hope it did not run
|
|
|
|
kill -USR1 $fish_pid
|
|
sleep .1
|
|
#CHECK: Got USR1: 3
|