VOGONS

Common searches


First post, by Deuce

User metadata
Rank Newbie
Rank
Newbie

Is it possible to have multiple DOSBox sesions running concurrently on the same file set? More specifically, I'm wondering about the SHARE implementation, file locking, and effects of the dirCache. Does file locking get passed through to the OS? Does the dirCache break semaphore files?

Reply 1 of 3, by Deuce

User metadata
Rank Newbie
Rank
Newbie

Well, a quick dig through the source code shows no sign of share modes in interrupt 0x21/AH=0x3D (Open) and no 0x21/AH=5c code at all... so SHARE is obviously not functional. Share open modes can easily be implemented using lock files, but the range locking is quite a bit trickier...

I suppose the "easiest" method of handling it all would be a temp file with all the lock information in it, but this would slow down read/write (locks are mandatory remember) operations quite a bit. I don't belive SDL includes any cross-platform shared memory support, so that route seems to be closed off unless one was to drag in another cross-platform library.

Another option would be a lock server... it would need to be explicitly enabled (disabled by default) and would need to be running (though DOSBox could fire it up automagically if it is enabled). Then all open/lock/read/write operations would need a round-trip with the lock server.

Any thoughts on this?

Reply 3 of 3, by Deuce

User metadata
Rank Newbie
Rank
Newbie

People running DOS door games under DOSBox. Many old DOS doors support multiple concurrent users using semaphore files and/or sharing/locking. While many of the old games can be used under modern Windows OSs, or under Linux/DosEmu, ones that don't support FOSSIL, or systems running a different OS have (until recently) been SOL. With the socket inheretence patch, door games such as Yankee Trader can be offered to users again on any system... but the multinode features would require multiple DOSBox instances to share locks.