propagate signals to the transferrer process group

Done on unix, could not implement it on windows quite.

The signal library gets part of the way needed for windows.
But I had to open https://github.com/pmlodawski/signal/issues/1 because
it lacks raiseSignal.

Also, I don't know what the equivilant of getProcessGroupIDOf is on
windows. And System.Process does not provide a way to send any signal to
a process group except for SIGINT.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
This commit is contained in:
Joey Hess 2020-12-11 15:28:58 -04:00
parent 79c765b727
commit d3f78da0ed
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
17 changed files with 150 additions and 48 deletions

View file

@ -1,6 +1,6 @@
{- Enumeration of cleanup actions
-
- Copyright 2014 Joey Hess <id@joeyh.name>
- Copyright 2014-2020 Joey Hess <id@joeyh.name>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
@ -8,9 +8,10 @@
module Types.CleanupActions where
import Types.UUID
import Utility.Url
import System.Process (Pid)
data CleanupAction
= RemoteCleanup UUID
| StopHook UUID
@ -20,3 +21,7 @@ data CleanupAction
| TorrentCleanup URLString
| OtherTmpCleanup
deriving (Eq, Ord)
data SignalAction
= PropagateSignalProcessGroup Pid
deriving (Eq, Ord)