Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!microsoft!bradch From: bradch@microsoft.UUCP (Bradford Christian ms1) Newsgroups: comp.sys.amiga.tech Subject: Re: I wanna have a DOSGate! Keywords: Citadel, DOSGate, door, bbs Message-ID: <6043@microsoft.UUCP> Date: 15 Jun 89 22:45:56 GMT References: <16317@gryphon.COM> <5866@microsoft.UUCP> <682@madnix.UUCP> <6013@microsoft.UUCP> <17575@louie.udel.EDU> Reply-To: bradch@microsoft.UUCP (Bradford Christian ms1) Distribution: na Organization: Microsoft Corp., Redmond WA Lines: 31 In article <17575@louie.udel.EDU> new@udel.EDU (Darren New) writes: > [...] In my BBS I plan to go multi-user by having multiple >copies of the BBS running at once, possibly after writing the >code to be residentable (seemed obvious to me :-). [...] I don't know if you've thought about this yet or not so I thought I'd bring it up: multiple instances do not a multi-user program make. If your program has any sort of data-base (like messages, mail, etc.), then you will have to coordinate access to the data base. For example, if your message base is one big file (a good thing to do to avoid wasted bytes at the end of blocks), then one user reading the file will prevent another user from adding a message to it. Running totaly separate instances will probably also make a CB mode (where two users can chat with each other directly) difficult. My solution to this problem is to have one instance of the program handle any number of users. The main process manages the data base and is the only thing that has access to these files. Each port has it's own process which sends messages to the main process when it needs to read or write an item in the data base. This solution not only solves the data base access problem, but also makes it real easy to allow two (or more) users to chat. I hope this doesn't mess up your plans, but if you hadn't thought of this and haven't started coding yet, it should be worth thinking about. A possible alternative to the method I use would be to write a multi-user data base handler as a separate program. You could then run multiple instances of you BBS program, one for each user, which would access the data base by sending messages to the handler. Good luck with your program!