如何在我的信号处理程序中设置 sigmask 并自动执行长跳转?

问题描述 投票:0回答:0

我正在实施协程调度程序。线程定期被中断(由

SIGURG
)进行切换。我在 sighandler 中使用
swapcontext
(来自
ucontext.h
)来实现这一点。但我发现
swapcontext
并没有自动设置
sigmask
并跳远。相反,它首先调用
sigprocmask
然后执行
jmp
(我认为这可能会导致信号处理程序重新进入等问题)。我怎样才能避免这种情况?

c signals scheduler coroutine ucontext
© www.soinside.com 2019 - 2024. All rights reserved.