Re: Questions about FORK.
"David Wilson" <[email protected]> Tue, 15 Aug 2006 12:51:16 -0400
| Newsgroups | gmane.games.devel.mud.rom |
|---|---|
| Message-ID | <[email protected]> |
Fork() creates a new process. The entire memory image of the old process is copied into the new process (well, it's copy-on-write for most OSs, but the outcome is the same). Any changes one process makes, cannot be seen by the other process. So changing d->connected in the email process doesn't change d->connected in the main process. You're going to need to either implement this as a thread (which does share the memory image) (google pthreads) or implement some kind of inter-process communication. I would go with threads (although I've never actually done threading in C or used pthreads to do threading in C, so I can't tell you how difficult it is (it's pretty easy in Python, though)) -David On 8/15/06, Valnir <[email protected]> wrote: > Ok.. I'm working on an account system, and want to make sure that no two > accounts have the same email address. Don't want users having duplicate > accounts. The issue I'm having is that during account creation I'm scanning > all the existing user accounts to see if any have the same address. I'm > using fork() so that I don't have the entire mud come to a screeching halt > while it scans, but for some reason, although everything in the fork() seems > to be working fine, it doesn't set the d->connected correctly or process the > nanny function again at the end the way I'm wanting it to. Ideas? Thansk! > > - Valnir > > /* Code snippet */ -- ROM mailing list [email protected] Unsubscribe here ->>> http://www.rom.org/cgi-bin/mailman/listinfo/rom