mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-15 00:02:46 -05:00
dll: fuse: Cygwin signal handling support
This commit is contained in:
@ -661,3 +661,18 @@ FSP_FUSE_API int32_t fsp_fuse_ntstatus_from_errno(struct fsp_fuse_env *env,
|
||||
return STATUS_ACCESS_DENIED;
|
||||
}
|
||||
}
|
||||
|
||||
/* Cygwin signal support */
|
||||
|
||||
static struct fuse *fsp_fuse_signal_arg;
|
||||
|
||||
FSP_FUSE_API void fsp_fuse_signal_handler(int sig)
|
||||
{
|
||||
if (0 != fsp_fuse_signal_arg && 0 != fsp_fuse_signal_arg->Service)
|
||||
FspServiceStop(fsp_fuse_signal_arg->Service);
|
||||
}
|
||||
|
||||
FSP_FUSE_API void fsp_fuse_set_signal_arg(void *se)
|
||||
{
|
||||
fsp_fuse_signal_arg = se;
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ FSP_FUSE_API int fsp_fuse_main_real(struct fsp_fuse_env *env,
|
||||
if (-1 == result)
|
||||
goto exit;
|
||||
|
||||
result = env->set_signal_handlers(f/* !!!: REVISIT */);
|
||||
result = env->set_signal_handlers(f);
|
||||
if (-1 == result)
|
||||
goto exit;
|
||||
signal_handlers = 1;
|
||||
@ -162,7 +162,7 @@ FSP_FUSE_API int fsp_fuse_main_real(struct fsp_fuse_env *env,
|
||||
|
||||
exit:
|
||||
if (signal_handlers)
|
||||
env->remove_signal_handlers(f/* !!!: REVISIT */);
|
||||
env->set_signal_handlers(0);
|
||||
|
||||
if (0 != f)
|
||||
fsp_fuse_destroy(env, f);
|
||||
|
Reference in New Issue
Block a user