On Tue, 27 Jan 1998, Nudd ap Mawr wrote:
>:Actually, yes I did. The only real advantage in the way I implemented it
>:is that if your MUD gets stuck in an infinite loop or something takes too
>:long (like 2.1 billion dice rolling), the processing thread can be killed.
>:Then it restarts the processing again, but of course, the world may have
>:some inconsistency in it after doing that depending on when it loops. The
>:way I did it is the only way I can think of, you cannot have multiple
>:processing threads because of the 4 global buffers. I basically split it
>:into 'Network I/O' and 'Character Processing' with a backward compatible
>:option if thread creation fails.
>
>Actually you could get around this by using a mutex lock on the global
>variables. Just put a lock infront of all of the critical sections, and
>release the lock when it is safe for those global variables to be
>overwritten.
Locking wasn't the idea of the patch, it was to use threads as easy as
possible. :) I'm currently doing a locking implementation (although I'm no
locking expert) which will show up in a testing/ directory later.
>As far as threads go, probably the best candidate (sp?) for spawning of
>threads would be the ident lookup or dns name resolving. Any other
That would be a nice use for it, too bad the ident package isn't part of
stock CircleMUD or I probably would. The DNS query does sound useful.
>threads probably won't help much (ie. hard to document the
>benefits) unless you are running on a multi-processor type system.
It'd be nice for processing players, the thread just sleeps until data
shows up in the input queue and processes it.
>Basically, with threads you just have to be careful that variables that
>can be used by more than one thread don't get stomped on. And mutex locks
>are the solution for that.
Working on it.
--
George Greer - Me@Null.net | Genius may have its limitations, but stupidity
http://www.van.ml.org/~greerga | is not thus handicapped. -- Elbert Hubbard
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST