I confirm, it's 1)

Adding a flush just before reopening the file R-O for the RemoteString instance 
solves this problem. However, this isn't obvious (i.e. the R-O opening is 
lazily triggered by another RemoteString method).

I don't like, from a threading point of view, the RemoteString writing code. It 
takes the stream position before writing stuff in it, opening an opportunity 
window for a race condition.

Thierry

________________________________________
De : pharo-project-boun...@lists.gforge.inria.fr 
[pharo-project-boun...@lists.gforge.inria.fr] de la part de Henrik Johansen 
[henrik.s.johan...@veloxit.no]
Date d'envoi : lundi 29 avril 2013 11:54
À : Pharo-project@lists.gforge.inria.fr
Objet : Re: [Pharo-project] cannot modify class comments on Linux

On Apr 26, 2013, at 8:06 PM, Nicolas Cellier wrote:

> To be perfectly clear, does the bug occurs
> 1) because we open a new file descriptor for read without flushing the old 
> one for write,
> 2) or does it occur with a single file descriptor opened 'rw' ?
>
> If 1), then this is probably our fault.
> If 2), then I wouldn't expect such behavior.

1), different streams are used for reading/writing, to reduce threading errors 
in relation to position usage.
RemoteStrings have an unusual tendency to jump around a lot in the streams 
they're linked to, which is no fun if you, say, try and write new source at the 
same time in a different thread.

Cheers,
Henry

Reply via email to