On Friday 21 March 2003 05:52 pm, Alexandre Julliard wrote:
Yes, the problem is that the smbfs Linux filesystem doesn't propagate locks. So you have to make sure that Wine is accessing the files through NFS, not through smbfs. As long as the server is a Linux machine this shouldn't be a problem.
Ok I'm seeing better success with my new test, having the files on Linux/Samba and having mixed Windows and local Linux/Wine clients (Linux client is accessing local file directly).
However, it still isn't working 100%, or perhaps we've unearthed a new problem. Visual FoxPro's RLOCK() function is supposed to return TRUE if we are able to get a lock on the record (a block of the database file) and FALSE if not. Well, RLOCK() is still returning TRUE even if the other client already supposedly has the lock. This is the same behavior as before the recent implementation of LockFile() in Wine.
What is different, is that that once the second client (the one that never should have had RLOCK() return TRUE in the first place) tries to commit a change to the record, an Error Writing To File occurs. In normal operation on Windows, Error Writing To File rarely occurs, and definitely should never have occurred because we never should have gotten to the point where we were trying to write to a record that we never should have had the lock on.
So... my question to those that understand this stuff much better than I do... what is still missing? Is it ReadFile() that was mentioned by John K. Hohm earlier?