Jeremy Hylton wrote:

On Thu, 17 Mar 2005 16:25:44 -0500, Aahz <[EMAIL PROTECTED]> wrote:


On Thu, Mar 17, 2005, Jeremy Hylton wrote:


Are the thread semantics for file objecst documented anywhere? I
don't see anything in the library manual, which is where I expected to
find it. It looks like read and write are atomic by virtue of fread
and fwrite being atomic.


Uncle Timmy will no doubt agree with me: the semantics don't matter.
NEVER, NEVER access the same file object from multiple threads, unless
you're using a lock. And even using a lock is stupid.



I just want to know
what semantics are intended. If the documentation wants to say that
the semantics are undefined that okay, although I think we need to say
more because some behavior has been provided by the implementation for
a long time.



I think that when two threads write to the same fd without syncronization, the result is not
deterministic anyway. In the case they are reading from the same fd, even worse! (and therefore
the input cannot be useful to any serious algorithm)


Python (libc in fact) just guarantees that there will be no crashes and corruption of
data if the read/write functions are reentered. But ensuring that readline/writeline/etc
is atomic would probably be a waste of resources protect the input/output for a case
where the data is as good as random noise anyway.


So I think aahz is right.

Stelios

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to