| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous code was prone to conflicts with when the platform happens
to expose a `execvpe(3)` implementation in its libc.
This commit renames the internal implementation to `__hsunix_execvpe` as
well as adding an autoconf-detection for the presence of `execvpe(3)`,
in which case `__hsunix_execvpe()` forwards the call to `execvpe(3)`.
Moreover, the code has been cleaned up to remove likely bitrotted CPP
conditionals.
This should fix #22
(This also partially addresses #11 on platforms which have a
libc-provided `execvpe(3)`)
|
|
|
|
|
|
|
| |
The changelog file will be shown on Hackage once it's included in the
source tarball.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
| |
Only language extensions not active when `-XHaskell2010` is enabled are
declared, this way we can drop many redundant
`{-# LANGUAGE ForeignFunctionInterface #-}` occurences. This commit also
removes/replaces some `{-# OPTIONS_GHC -XRecordWildCards #-}` pragmas.
Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Bool field of Terminated is new, as is the documentation:
data ProcessStatus
= Exited ExitCode -- ^ the process exited by calling
-- @exit()@ or returning from @main@
| Terminated Signal Bool -- ^ the process was terminated by a
-- signal, the @Bool@ is @True@ if a core
-- dump was produced
| Stopped Signal -- ^ the process was stopped by a signal
deriving (Eq, Ord, Show)
This is an API change, hence will need a major version bump.
|
|
|
|
| |
and remove code to support older versions
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The API is the same (for now). The new implementation has the
capability to define signal handlers that have access to the siginfo
of the signal (#592), but this functionality is not exposed in this
patch.
#2451 is the ticket for the new API.
The main purpose of bringing this in now is to fix race conditions in
the old signal handling code (#2858). Later we can enable the new
API in the HEAD.
Implementation differences:
- More of the signal-handling is moved into Haskell. We store the
table of signal handlers in an MVar, rather than having a table of
StablePtrs in the RTS.
- In the threaded RTS, the siginfo of the signal is passed down the
pipe to the IO manager thread, which manages the business of
starting up new signal handler threads. In the non-threaded RTS,
the siginfo of caught signals is stored in the RTS, and the
scheduler starts new signal handler threads.
|
|
Also adds System.Posix.Process.Internals in order to make the deps work out.
|