Ticket #5167: 0001-Change-the-POSIX-process-group-API.-trac-5167.patch

File 0001-Change-the-POSIX-process-group-API.-trac-5167.patch, 4.5 KB (added by Favonia, 2 years ago)

patch to the package unix (version 3)

  • System/Posix/Process.hsc

    From 18d700fa8b9745f28d7e42e71ae9e23759eba970 Mon Sep 17 00:00:00 2001
    From: Favonia <favonia@gmail.com>
    Date: Wed, 4 May 2011 06:52:44 -0400
    Subject: [PATCH 1/2] Change the POSIX process group API. (trac #5167)
    
    Make it possible to query the process group of an existing
    process (through 'getProcessGroupIDOf') and try to make
    function names more consistent. Here is the full list of
    API changes in System.Posix.Process in this patch:
    
    getProcessGroupID     => same
    getProcessGroupIDOf   => new
    createProcessGroup    => deprecated
    createProcessGroupFor => new
    joinProcessGroup      => same
    setProcessGroupID     => deprecated
    setProcessGroupIDOf   => new
    ---
     System/Posix/Process.hsc |   62 +++++++++++++++++++++++++++++++++++++---------
     1 files changed, 50 insertions(+), 12 deletions(-)
    
    diff --git a/System/Posix/Process.hsc b/System/Posix/Process.hsc
    index 248c2e2..e42884f 100644
    a b  
    2929    -- ** Process environment 
    3030    getProcessID, 
    3131    getParentProcessID, 
    32     getProcessGroupID, 
    3332 
    3433    -- ** Process groups 
    35     createProcessGroup, 
     34    getProcessGroupID, 
     35    getProcessGroupIDOf, 
     36    createProcessGroupFor, 
    3637    joinProcessGroup, 
    37     setProcessGroupID, 
     38    setProcessGroupIDOf, 
    3839 
    3940    -- ** Sessions 
    4041    createSession, 
     
    5859    getAnyProcessStatus, 
    5960    getGroupProcessStatus, 
    6061 
     62    -- ** Deprecated 
     63    createProcessGroup, 
     64    setProcessGroupID, 
     65 
    6166 ) where 
    6267 
    6368#include "HsUnix.h" 
     
    118123foreign import ccall unsafe "getpgrp" 
    119124  c_getpgrp :: IO CPid 
    120125 
    121 -- | @'createProcessGroup' pid@ calls @setpgid@ to make 
     126-- | @'getProcessGroupIDOf' pid@ calls @getpgid@ to obtain the 
     127--   'ProcessGroupID' for process @pid@. 
     128getProcessGroupIDOf :: ProcessID -> IO ProcessGroupID 
     129getProcessGroupIDOf pid = 
     130  throwErrnoIfMinus1 "getProcessGroupIDOf" (c_getpgid pid) 
     131 
     132foreign import ccall unsafe "getpgid" 
     133  c_getpgid :: CPid -> IO CPid 
     134 
     135-- | @'createProcessGroupFor' pid@ calls @setpgid@ to make 
    122136--   process @pid@ a new process group leader. 
    123 createProcessGroup :: ProcessID -> IO ProcessGroupID 
    124 createProcessGroup pid = do 
    125   throwErrnoIfMinus1_ "createProcessGroup" (c_setpgid pid 0) 
     137createProcessGroupFor :: ProcessID -> IO ProcessGroupID 
     138createProcessGroupFor pid = do 
     139  throwErrnoIfMinus1_ "createProcessGroupFor" (c_setpgid pid 0) 
    126140  return pid 
    127141 
    128142-- | @'joinProcessGroup' pgid@ calls @setpgid@ to set the 
     
    131145joinProcessGroup pgid = 
    132146  throwErrnoIfMinus1_ "joinProcessGroup" (c_setpgid 0 pgid) 
    133147 
    134 -- | @'setProcessGroupID' pid pgid@ calls @setpgid@ to set the 
    135 --   'ProcessGroupID' for process @pid@ to @pgid@. 
    136 setProcessGroupID :: ProcessID -> ProcessGroupID -> IO () 
    137 setProcessGroupID pid pgid = 
    138   throwErrnoIfMinus1_ "setProcessGroupID" (c_setpgid pid pgid) 
     148-- | @'setProcessGroupIDOf' pid pgid@ calls @setpgid@ to set the 
     149--   'ProcessGroupIDOf' for process @pid@ to @pgid@. 
     150setProcessGroupIDOf :: ProcessID -> ProcessGroupID -> IO () 
     151setProcessGroupIDOf pid pgid = 
     152  throwErrnoIfMinus1_ "setProcessGroupIDOf" (c_setpgid pid pgid) 
    139153 
    140154foreign import ccall unsafe "setpgid" 
    141155  c_setpgid :: CPid -> CPid -> IO CInt 
     
    396410  c_exit :: CInt -> IO () 
    397411 
    398412-- ----------------------------------------------------------------------------- 
     413-- Deprecated or subject to change 
     414 
     415{-# DEPRECATED createProcessGroup "This function is subject to change in future versions." #-} 
     416-- | @'createProcessGroup' pid@ calls @setpgid@ to make 
     417--   process @pid@ a new process group leader. 
     418--   This function is currently deprecated, 
     419--   and might be changed to making the current 
     420--   process a new process group leader in future versions. 
     421createProcessGroup :: ProcessID -> IO ProcessGroupID 
     422createProcessGroup pid = do 
     423  throwErrnoIfMinus1_ "createProcessGroup" (c_setpgid pid 0) 
     424  return pid 
     425 
     426{-# DEPRECATED setProcessGroupID "This function is subject to change in future versions." #-} 
     427-- | @'setProcessGroupID' pid pgid@ calls @setpgid@ to set the 
     428--   'ProcessGroupID' for process @pid@ to @pgid@. 
     429--   This function is currently deprecated, 
     430--   and might be changed to setting the 'ProcessGroupID' 
     431--   for the current process in future versions. 
     432setProcessGroupID :: ProcessID -> ProcessGroupID -> IO () 
     433setProcessGroupID pid pgid = 
     434  throwErrnoIfMinus1_ "setProcessGroupID" (c_setpgid pid pgid) 
     435 
     436-- -----------------------------------------------------------------------------