On 12 Nov 2001, Alexandre Julliard wrote:
But the list has to be stored in the server, otherwise you cannot guarantee the request order across processes. I think you need to put just about everything except the actual read/write call in the server.
Are your talking about threads? Wrt to processes, I don't understand the argument, because the list will be indexed by async objects which are unique to each open file, and file descriptors won't be shared across processes, right? For threads I'm not sure, but if they don't share their file descriptors it's fine for the same reason, and if they do, the algorithm I proposed will ensure correct ordering. Am I overlooking something?
I don't think we want to use threads at all. This has major overhead and compatibility problems. IMO normal file I/O should always be done synchronously; it may impact performance a bit when reading from floppy, but this is better than slowing down all async operations with the need to manage threads and locks.
OK, let's forget about this in the first place. I thought that clone() calls actually have pretty low overhead, but I may be mistaken (and too Linux-centric). And I did not think through all necessary synchonization needs.
Martin