Roy Smith wrote:
> In article <[email protected]>,
> Peter Otten <[email protected]> wrote:
>
>> os.fork()
>> Fork a child process.
>> ...
>> Availability: Unix.
>> """
>>
>> You are using the wrong operating system ;)
>
> To be honest, this could be considered a buglet in the os module. It
> really should raise:
>
> NotImplementedError("fork() is only available on unix")
>
> or perhaps even, as Peter suggests:
>
> NotImplementedError("You are using the wrong operating system")
>
> either of those would be better than AttributeError.
I disagree. How would you tell if fork is implemented? With the current
behaviour, telling whether fork is implemented or not is simple:
is_implemented = hasattr(os, "fork")
With your suggestion:
try:
pid = os.fork()
except NotImplementedError:
is_implemented = False
else:
if pid == 0:
# In the child process.
os._exit(0) # Unconditionally exit, right now, no excuses.
is_implemented = True
which is not obvious, simple or cheap.
--
Steven
--
https://mail.python.org/mailman/listinfo/python-list