|Version 2 (modified by walt, 12 months ago)|
PVFS files communicate with servers via FDs - when a process forks, that FD is shared between the child and parent. If they attempt to communicate with the same server in an interleaved manner they will likely confused the server. Generally, all FDs should be closed. They should be automatically reopened when the client tries to communicate. There is a list in BMI of open connections, but no means to easily iterate through the list - this would need to be added. Should be relatively easy, once the correct structures are located.
POSIX says when processes fork, the child and parent SHOULD share open files. To make this work, the processes would need to share memory where pvfs_descriptors are stored, and these would need to be protected with locks to control concurrent access. This would probably require setting up some kind of shared memory region where the descriptors are shared. Potentially PVFS could provide a different semantic, but that would be a problem with some applications.