January 2000
- JavaWorld: Build an object database J C Lawrence
- Muq update Cynbe ru Taren
- New link support J C Lawrence
- OS Inspiration Phillip Lenhardt
- OS Inspiration Greg Miller
- Chomsky's recursive theory of grammar J C Lawrence
- concerning tokenization, compilation, performance, and other fun stuff. Nate Cain
- concerning tokenization, compilation, performance, and other fun stuff. cg@ami-cg.GraySage.Edmonton.AB.CA
- concerning tokenization, compilation, performance, and other fun stuff. Joel Dillon
- concerning tokenization, compilation, performance, and other fun stuff. Ola Fosheim Grøstad
- Library submission notification and updates J C Lawrence
- EQ packet sniffer J C Lawrence
- Catalog of Compiler Construction Tools J C Lawrence
- Microthreads for Python J C Lawrence
- For those interested in parsers and compilers J C Lawrence
- EQ packet analyzer is gone? Sellers, Michael
- EQ packet analyzer is gone? J C Lawrence
- EQ packet analyzer is gone? J C Lawrence
- RFC: Worldforge project Scott Clitheroe
- ScryMUD 2.0.9 released (compiles on Windows (cygwin)) Ben Greear
- Clay Shirky's "Playfulness in 3-D Spaces" J C Lawrence
- Clay Shirky's "Playfulness in 3-D Spaces" Raph & Kristen Koster
- Clay Shirky's "Playfulness in 3-D Spaces" Sellers, Michael
- Clay Shirky's "Playfulness in 3-D Spaces" Nick Shaffner
- Clay Shirky's "Playfulness in 3-D Spaces" Sellers, Michael
- Clay Shirky's "Playfulness in 3-D Spaces" Jeremy Music "Sterling"
- Clay Shirky's "Playfulness in 3-D Spaces" msew
- ShowEQ Ashran
- Hello! F. Randall Farmer
- Hello! Cynbe ru Taren
- Y2K archives J C Lawrence
- An introduction... Geoffrey A. MacDougall
- An introduction... Lovecraft
- Laws website moves Raph & Kristen Koster
- Ok, got some brand new core dumps. J C Lawrence
- player politics (was An introduction...) Sellers, Michael
- player politics (was An introduction...) Ola Fosheim Grøstad
- player politics (was An introduction...) Sellers, Michael
- player politics (was An introduction...) Ola Fosheim Grøstad
- player politics (was An introduction...) J C Lawrence
- player politics (was An introduction...) Sellers, Michael
- A quick business question... Geoffrey A. MacDougall
- A quick business question... Matthew Mihaly
- A quick business question... Darrin Hyrup
- Question about multithreaded servers Fabian Lemke
- Question about multithreaded servers AR Schleicher
- Question about multithreaded servers Nick Shaffner
----- Original Message -----
From: Fabian Lemke <lemkef@execpc.com>
>The problem is that the Area threads will be responsible for
>telling the objects to process scripts, and I'll be needing commands to
>get access to objects that may be in other area threads - usually not a
>problem if locking is all proper -
>but I'm worried about deadlocks because
>I want objects locked during the whole script so nothing can be changed on
>me.
IMHO, this is the root of your problem (locking objects for the whole
script). By nature, deadlocks are far more likely to occur when you have
entire objects locked, even when they don't need to be. In general, you
should strive to hold as few object locks as possible for as short a period
as possible - though even then you will still get the occasional deadlock.
> Since object scripts can get out-of-area objects to play with, they
>have to be locked for the rest of the script. If two objects (not in the
>same area) lock themselves to run a script, and then each's script
>attempts to secure the other.....
>
>The only solution I can think of is to have a seperate thread for
>executing scripts, but 95% of the time scripts won't need to access
>out-of-area objects.
>
>Any ideas how this can be solved? I'm somewhat new to multi-threading,
>but am pretty sure I have a solid grasp on it all, but I've little design
>experience in it.
Why not switch to an Event based system and have an event queue for each
area thread? Classically, properly implemented event based systems are very
good at avoiding deadlocks, simply because of their implicit 'one-way'
discipline. In addition, the thread that owns the object that a given Event
applies to could/would also be the thread that executes the event - thus
removing almost all need of user level object locking.
So you could, for example, have a master event queue, running on it's
own thread that would sort all incoming events by the areas of the objects
they applied to and send them down to the appropriate 'area' event queue, to
be handled by that particular area's thread whenever it gets around to it.
Nick
--
My views and my companies views are wholly unrelated.
Nick Shaffner
Programmer: Duke Nukem Forever
3D Realms - Question about multithreaded servers Ola Fosheim Grøstad
- Question about multithreaded servers Fabian
- Question about multithreaded servers Jon A. Lambert
- Question about multithreaded servers J C Lawrence
- Question about multithreaded servers Greg Underwood
- Question about multithreaded servers cg@ami-cg.GraySage.Edmonton.AB.CA
- Question about multithreaded servers J C Lawrence
- Question about multithreaded servers Greg Underwood
- Question about multithreaded servers J C Lawrence
- Question about multithreaded servers Emil Eifrém
- Question about multithreaded servers J C Lawrence
- Community Relations Dundee
- Community Relations Christopher Allen
- Community Relations Matthew Mihaly
- Community Relations Greg Miller
- Community Relations Darrin Hyrup
- Community Relations Dundee
- Community Relations Ola Fosheim Grøstad
- Community Relations Dundee
- Community Relations Ola Fosheim Grøstad
- Community Relations Dundee
- Community Relations Marian Griffith
- Community Relations Koster, Raph
- Community Relations Jon A. Lambert
- Community Relations Matthew Mihaly
- Community Relations Ola Fosheim Grøstad
- Community Relations Matthew Mihaly
- Community Relations Ola Fosheim Grøstad
- Community Relations Matthew Mihaly
- Community Relations Marc Bowden
- Community Relations Eli Stevens {Grey}
- Community Relations Matthew Mihaly
- Community Relations Raph & Kristen Koster
- Community Relations Matthew Mihaly
- Community Relations Koster, Raph
- Community Relations Travis Casey
- Community Relations Ola Fosheim Grøstad
- Community Relations Travis Casey
- Community Relations Ola Fosheim Grøstad
- Community Relations Matthew Mihaly
- Community Relations Rahul Sinha
- Community Relations Matthew Mihaly
- Community Relations Matthew Mihaly
- Community Relations Ola Fosheim Grøstad
- Community Relations Koster, Raph
- Community Relations Matthew Mihaly
- Community Relations Geoffrey A. MacDougall
- Community Relations Jon A. Lambert
- Community Relations Matthew Mihaly
- Community Relations Ola Fosheim Grøstad
- Community Relations Travis S. Casey
- Community Relations Douglas Couch
- Community Relations Dundee
- Community Relations Marian Griffith
- Community Relations Jon A. Lambert
- Community Relations Matthew Mihaly
- Community Relations Jon A. Lambert
- Community Relations Matthew Mihaly
- Community Relations Geoffrey A. MacDougall
- Community Relations Matthew Mihaly
- Community Relations Lovecraft
- Community Relations Geoffrey A. MacDougall
- Community Relations Lovecraft
- Community Relations Marian Griffith
- Community Relations Matthew Mihaly
- Community Relations Sellers, Michael
- Community Relations Lovecraft
- Community Relations J C Lawrence
- Community Relations Lovecraft
- Community Relations J C Lawrence
- Community Relations Koster, Raph
- Community Relations Jon A. Lambert
- Community Relations Ola Fosheim Grøstad
- Community Relations Lovecraft
- Community Relations Jon A. Lambert
- Community Relations Lovecraft
- Community Relations Jon A. Lambert
- Community Relations Jon A. Lambert
- Community Relations J C Lawrence
- Community Relations Wes Connell
- Community Relations Marc Bowden
- Community Relations Dundee
- Community Relations J C Lawrence
- Community Relations J C Lawrence
- Community Relations F. Randall Farmer
- Community Relations Dr. Cat
- Community Relations J C Lawrence
- Community Relations Koster, Raph
- Community Relations Geoffrey A. MacDougall
- Community Relations Matthew Mihaly
- Commercial-use Restrictions on Code Bases (was: help me find 100% fre (fwd) J C Lawrence
- Commercial-use Restrictions on Code Bases (was: help me find 100% fre (fwd) J C Lawrence
- Databases (was Commercial-use Restrictions on Code Bases) Charles Hughes
- Databases (was Commercial-use Restrictions on Code Bases) cg@ami-cg.GraySage.Edmonton.AB.CA
- Databases (was Commercial-use Restrictions on Code Bases) Jon A. Lambert
- Databases (was Commercial-use Restrictions on Code Bases) Jon A. Lambert
- Databases (was Commercial-use Restrictions on Code Bases) J C Lawrence
- Mud-Dev FAQ part I Marian Griffith
- Mud-Dev FAQ part II Marian Griffith
- META: List goals (was OS Inspiration) J C Lawrence
- Valhalla license? CFrancy@aol.com
- Valhalla license? Matthew Mihaly
- Valhalla license? Richard Woolcock
- Planet/Solar System Generation Wes Connell
- Planet/Solar System Generation icecube@ihug.co.nz
- Planet/Solar System Generation Christopher Allen
- Planet/Solar System Generation J C Lawrence
- Planet/Solar System Generation Nolan Darilek
- Planet/Solar System Generation Wes Connell
- Planet/Solar System Generation Richard Woolcock
- How to handle/display partial language skill Joe Kingry
- How to handle/display partial language skill Greg Underwood
- How to handle/display partial language skill Wes Connell
- How to handle/display partial language skill Matt Chatterley
- Signing off... IronWolf
- Simulated Populations phlUID
- Simulated Populations Charles Hughes
- Simulated Populations Vladimir Prelovac
- Simulated Populations phlUID
- Simulated Populations Dundee
- Simulated Populations Wes Connell
- Simulated Populations Nicolai Hansen
- Simulated Populations J C Lawrence
- Simulated Populations J C Lawrence
- Business Licenses CFrancy@aol.com
- Business Licenses Bruce
- Business Licenses J C Lawrence
- [adv-mud] What good is a hero when nobody knows? (fwd) J C Lawrence
- [adv-mud] What good is a hero when nobody knows? (fwd) Matthew Mihaly
- [adv-mud] What good is a hero when nobody knows? (fwd) Wes Connell
- [adv-mud] What good is a hero when nobody knows? (fwd) Matthew Mihaly
- [adv-mud] What good is a hero when nobody knows? (fwd) Erik Jarvi
- Multiply oriented interactive worlds... Justin Rogers
- [adv-mud] What good is a hero when nobody knows? J C Lawrence
- [adv-mud] Topic list repost (fwd) J C Lawrence
- [adv-mud] Spellbound Hierarchy and Keys (fwd) J C Lawrence
- [adv-mud] Spellbound Hierarchy and Keys (fwd) J C Lawrence
- [adv-mud] Better Grammer Detection J C Lawrence
- [adv-mud] MUD-Dev vs. adv-mud J C Lawrence
- MUD-Dev vs. adv-mud phlUID
- [adv-mud] What good is a hero when nobody knows? phlUID
- (fwd) Avatarism and Role-Playing Game Design claw@kanga.nu
- Starlane test Joel Kelso
- hoho Matthew Mihaly
- Current Status of Middle Earth Online Geoffrey A. MacDougall
- ScryMUD 2.0.10 released. Ben Greear
- [adv-mud] What good is a hero when nobody knows? J C Lawrence
- [adv-mud] What good is a hero when nobody knows? Ben Greear
- [adv-mud] What good is a hero when nobody knows? J C Lawrence
- [adv-mud] What good is a hero when nobody knows? Wes Connell
- [adv-mud] What good is a hero when nobody knows? J C Lawrence
- Some new Library references J C Lawrence