Proposal: POSIX process group API reform
Simon Marlow
marlowsd at gmail.com
Wed May 11 11:11:55 CEST 2011
On 04/05/2011 14:18, Favonia wrote:
> I am proposing a POSIX process group API change in order to
> (1) make ProcessGroupID a newtype of CPid, and
> (2) make it possible to query the process group of an existing process.
>
> The motivation is that currently there is no way to query a process
> group of an existing process, but it seems needed for a proper
> implementation for ticket #3994. Also it seems nice if the compiler
> can do distinguish ProcessGroupID from ProcessID, just like Fd from
> CInt.
We should not make ProcessGroupID a newtype, because execpt for Fd, none
of the other types in this family are newtypes. If we want to make them
all newtypes, that should be done in one pass with a separate proposal.
I suggest retaining more backwards compatibility:
- do not change setProcessGroupID yet: the functionality
is already provided by joinProcessGroup. Instead just
deprecate it.
- instead of changing createProcessGroup, add
newProcessGroup :: IO ProcessGroupID
newProcessGroupFor :: ProcessId -> IO ProcessGroupID
and deprecate createProcessGroup.
- Sometime later, change setProcessGroupID to the new version
and undeprecate it.
> PS: Sorry but the patch to the package base is not fully tested, as I
> have not figured out the correct way to compile package base (even
> without the patch). However the patch to the package unix should work
> independently of the patch to the package base.
If you make patches, I'll test and commit at the end of the discussion
period.
Cheers,
Simon
More information about the Libraries
mailing list