Re: Shared Memory

From: Pink Floyd (
Date: 02/28/96 this might not be the place to ask this...

Oh, well. ;-)

   Is there anywhere on the great Net (or does anyone know) the symantics of SysV
   shared memory / interprocess communication?

You could try _Advanced Programming in the UNIX Environment_ by W. Richard
Stevens.  It tells all about that stuff.

   Reason I want to know is I am toying around with the idea of a "crash proof"
   world.  In my current view of it, I would require a world state file saved
   every now and again (and at certain times as well).  Under the current state
   of Circle being a monolithic MUD server, I would think it best to have a small
   daemon sitting around that reads the world's current state and save the state 
   file. (Reasoning: reduce the GOBS of lag this would enduce.)  Of course, I
   need this daemon to see the current world in memory...and I think shared 
   memory would fit the task nicely (unless I'm misunderstanding some key concept

One excellent alternative would be to get a threads package and do this with

   Also, anyone know where I can get a non-blocking ident (RFC1413) protocol 
   handler?  I think the one I currently have is a blocking type (grrrr.....) and
   it is slowing things down at login (since I do ban control based on login@site
   as well as the standard sitebans etc.)

Again, I don't believe that you can do this with a single threaded mud.  Your
only option would be to set a shorter default timeout for the pident thing,
risking that the call would not identify the user.  There is no way to have
it non-blocking and still have it wait until it gets a value.  Unless you 
use threads.  Then when a user logs in, you could start a thread that made
the call, and while that thread blocked the main one would continue to run
the mud with no lag.  You can get info on threads at:
Check out the "implementation at MIT" at the bottom of that page.

I love my country, but I fear my government.

This archive was generated by hypermail 2b30 : 12/07/00 PST