process 1.6.6.0 → 1.6.7.0
raw patch · 4 files changed
+32/−6 lines, 4 filesdep ~base
Dependency ranges changed: base
Files
- cbits/runProcess.c +9/−1
- changelog.md +7/−1
- configure +13/−1
- process.cabal +3/−3
cbits/runProcess.c view
@@ -903,8 +903,12 @@ // List of events we can listen to: // https://msdn.microsoft.com/en-us/library/windows/desktop/ms684141(v=vs.85).aspx while (GetQueuedCompletionStatus (ioPort, &CompletionCode,- &CompletionKey, &Overlapped, timeout)) {+ &CompletionKey, &Overlapped, timeout)) { + // If event wasn't meant of us, keep listening.+ if ((HANDLE)CompletionKey != hJob)+ continue;+ switch (CompletionCode) { case JOB_OBJECT_MSG_NEW_PROCESS:@@ -930,6 +934,10 @@ maperrno(); return 1; }++ // Check to see if the child has actually exited.+ if (*(DWORD *)pExitCode == STILL_ACTIVE)+ waitForProcess ((ProcHandle)pHwnd, pExitCode); } break; case JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO:
changelog.md view
@@ -1,5 +1,11 @@ # Changelog for [`process` package](http://hackage.haskell.org/package/process) +## 1.6.7.0 *November 2019*++* Fix a race condition on Windows that happens when you use process jobs and one of+ the child processes terminates but doesn't release its resources immediately.+ Control returns to the caller too soon in this scenario. See [#159](https://github.com/haskell/process/pull/159)+ ## 1.6.6.0 *October 2019* * Fix a potential privilege escalation issue (or, more precisely, privileges@@ -27,7 +33,7 @@ * Bug fix: Don't leak pipes on failure [#122](https://github.com/haskell/process/issues/122)-* Expose `cleanupProcess` from `System.Process` +* Expose `cleanupProcess` from `System.Process` [#130](https://github.com/haskell/process/pull/130) * Drop support for GHC before 7.10.3
configure view
@@ -653,6 +653,7 @@ docdir oldincludedir includedir+runstatedir localstatedir sharedstatedir sysconfdir@@ -723,6 +724,7 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var'+runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'@@ -975,6 +977,15 @@ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \+ | --runstate | --runstat | --runsta | --runst | --runs \+ | --run | --ru | --r)+ ac_prev=runstatedir ;;+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \+ | --run=* | --ru=* | --r=*)+ runstatedir=$ac_optarg ;;+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \@@ -1112,7 +1123,7 @@ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \- libdir localedir mandir+ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes.@@ -1265,6 +1276,7 @@ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var]+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include]
process.cabal view
@@ -1,5 +1,5 @@ name: process-version: 1.6.6.0+version: 1.6.7.0 -- NOTE: Don't forget to update ./changelog.md license: BSD3 license-file: LICENSE@@ -55,7 +55,7 @@ other-modules: System.Process.Common if os(windows) other-modules: System.Process.Windows- build-depends: Win32 >=2.2 && < 2.7+ build-depends: Win32 >=2.2 && < 2.9 extra-libraries: kernel32 cpp-options: -DWINDOWS else@@ -73,7 +73,7 @@ ghc-options: -Wall - build-depends: base >= 4.8.2 && < 4.14,+ build-depends: base >= 4.8.2 && < 4.15, directory >= 1.1 && < 1.4, filepath >= 1.2 && < 1.5, deepseq >= 1.1 && < 1.5