[Python-ideas] Implementation of shutil.move

David Townshend aquavitae69 at gmail.com
Sat Aug 13 16:59:53 CEST 2011


There was a suggestion on the issue tracker that it might be better to add
an optional argument to shutil.move rather than create a new function. Does
anyone have any comments or suggestions about this?
On Aug 12, 2011 7:35 PM, "David Townshend" <aquavitae69 at gmail.com> wrote:
> If the kernel doesn't allow file locking then I don't see any way that a
> locking context manager will be possible, but it should still be possible
to
> safely move files using link and unlink. Maybe the other problem functions
> can be dealt with individually in a similar way?
> On Aug 12, 2011 6:57 PM, "Christian Heimes" <lists at cheimes.de> wrote:
>> Am 12.08.2011 18:37, schrieb Masklinn:
>>> On 2011-08-12, at 17:03 , Christian Heimes wrote:
>>>> Am 12.08.2011 16:55, schrieb Masklinn:
>>>>> On 2011-08-12, at 16:48 , David Townshend wrote:
>>>>>> My understanding of os.O_EXCL is that it locks the file from changes
> by any
>>>>>> other process.
>>>>> That, *could* be O_EXLOCK, but I'm not too sure.
>>>>>
>>>>> O_EXCL does not do anything in and of itself, it fails the file
opening
> if combined with O_CREAT. That's it (from man 2 open):
>>>>>
>>>>> O_EXCL error if O_CREAT and the file exists
>>>>
>>>> The man page open(2) doesn't mention O_EXLOCK. It must belong to
another
>>>> low level function.
>>> Nope, got it from open(2), but it's apparently a bsd extension:
> http://lkml.indiana.edu/hypermail/linux/kernel/0005.1/1288.html
>>>
>>> This information (that it's an extension) is present in the OpenBSD
> open(2) page, but I checked it on an OSX machine where it's not specified.
> Sorry.
>>>
>>> It's an atomic `flock(fd, LOCK_EX)` (or LOCK_SH) built into open(2) to
> avoid the unlocked open hole between the open(2) and flock(2) calls.
>>
>> Ah, I've checked the open(2) man page on Linux. Should have mentioned
>> the OS ... sorry, too.
>>
>> Anyway flock()s are only advisory (cooperative) locks and not mandatory
>> locks. Although some Unices have support for mandatory locks, they can
>> be circumvented with unlink().
>>
>> Christian
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> http://mail.python.org/mailman/listinfo/python-ideas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110813/5eb1923f/attachment.html>


More information about the Python-ideas mailing list