July 1997
- A simple political/social system? Jon A. Lambert
- A simple political/social system? clawrenc@cup.hp.com
- A simple political/social system? Marian Griffith
- A simple political/social system? clawrenc@cup.hp.com
- A simple political/social system? Jon A. Lambert
- Wounds and trauma Adam Wiggins
- Wounds and trauma clawrenc@cup.hp.com
- Wear Location System Jon A. Lambert
- Level abstractions clawrenc@cup.hp.com
- (fwd) Popularity of text-based MUDS clawrenc@cup.hp.com
- trying again Chris Gray
- My page, such as it is. Michael A. Hohensee
- What happened? Michael Hohensee
- Testing coder@ibm.net
- > Integrating PK Matt Chatterley
- Level abstractions / Game realism issues Matt Chatterley
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling Chris Gray
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Chris Gray
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Jon A. Lambert
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Jon A. Lambert
- C&C and Event Rescheduling Jon A. Lambert
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Nathan Yospe
- C&C and Event Rescheduling Adam Wiggins
- C&C and Event Rescheduling Richard Woolcock
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Richard Woolcock
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Adam Wiggins
- C&C and Event Rescheduling Marian Griffith
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Adam Wiggins
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Miroslav Silovic
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Jon A. Lambert
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling Miroslav Silovic
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Miroslav Silovic
- C&C and Event Rescheduling Miroslav Silovic
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Miroslav Silovic
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Jon A. Lambert
- C&C and Event Rescheduling Shawn Halpenny
- C&C and Event Rescheduling Jeff Kesselman
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Jeff Kesselman
- C&C and Event Rescheduling clawrenc@cup.hp.com
- C&C and Event Rescheduling Jeff Kesselman
- not about pk anymore Marian Griffith
- not about pk anymore Huibai
- not about pk anymore Matt Chatterley
- not about pk anymore clawrenc@cup.hp.com
- not about pk anymore Alex Oren
- not about pk anymore Matt Chatterley
- not about pk anymore clawrenc@cup.hp.com
- natural language parser (Output) Nathan Yospe
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Adam Wiggins
- Virtual Chemistry Jon A. Lambert
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Jon A. Lambert
- Virtual Chemistry Adam Wiggins
- Virtual Chemistry Jon A. Lambert
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Michael Hohensee
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Marian Griffith
- Virtual Chemistry Chris Gray
- Virtual Chemistry Marian Griffith
- Virtual Chemistry Chris Gray
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Chris Gray
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry clawrenc@cup.hp.com
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Nathan Yospe
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Nathan Yospe
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Marian Griffith
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Marian Griffith
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Jon A. Lambert
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry clawrenc@cup.hp.com
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry clawrenc@cup.hp.com
- Virtual Chemistry Marian Griffith
- Virtual Chemistry Jon A. Lambert
- Virtual Chemistry Brandon Van Every
- Virtual Chemistry Jon A. Lambert
- Virtual Chemistry Huibai
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Matt Chatterley
- Virtual Chemistry Adam Wiggins
- Virtual Chemistry Huibai
- Virtual Chemistry Marian Griffith
- Virtual Chemistry clawrenc@cup.hp.com
- Combat Adam Wiggins
- Attn JCL: A scenario for you Alex Oren
- Combat messages Marian Griffith
- Combat messages Adam Wiggins
- Combat messages Martin Keegan
- Combat messages Matt Chatterley
- What about drugs? Nathan Yospe
- What about drugs? Adam Wiggins
- What about drugs? Jon A. Lambert
- What about drugs? Martin Keegan
- coord-based recap? Huibai
- coord-based recap? clawrenc@cup.hp.com
- Docs uploaded Chris Gray
- What are the elements of playabilty? clawrenc@cup.hp.com
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Cynbe ru Taren
- META: Making the list public? coder@ibm.net
- META: Making the list public? Michael Hohensee
- META: Making the list public? Chris Gray
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Brandon Gillespie
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Michael Hohensee
- META: Making the list public? Brandon Gillespie
- META: Making the list public? Shawn Halpenny
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Shawn Halpenny
- META: Making the list public? Alex Oren
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Shawn Halpenny
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Jon A. Lambert
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Matt Chatterley
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Huibai
- META: Making the list public? Martin Keegan
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Marian Griffith
- META: Making the list public? Jon A. Lambert
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Shawn Halpenny
- META: Making the list public? clawrenc@cup.hp.com
- META: Making the list public? Matt Chatterley
- Longbows and such. Cynbe ru Taren
- R-trees &kin Cynbe ru Taren
- R-trees &kin Martin Keegan
- META: Making the list public? S001GMU@nova.wright.edu
- META: Making the list public? clawrenc@cup.hp.com
- META: C&C and Event Rescheduling clawrenc@cup.hp.com
- Source data on Crossbows clawrenc@cup.hp.com
- Source data on Crossbow Cynbe ru Taren
- Source data on Crossbow Matt Chatterley
- Source data on Crossbow Cynbe ru Taren
- Source data on Crossbow Matt Chatterley
- Source data on Crossbow clawrenc@cup.hp.com
- Source data on Crossbow Matt Chatterley
- Source data on Crossbow clawrenc@cup.hp.com
- Source data on Crossbow Matt Chatterley
- Source data on Crossbow Caliban Tiresias Darklock
- Source data on Crossbow Marian Griffith
- Source data on Crossbow clawrenc@cup.hp.com
- Source data on Crossbow Orion Henry
- Source data on Crossbow Cynbe ru Taren
- Source data on Crossbow Matt Chatterley
- Source data on Crossbow Michael Hohensee
- Source data on Crossbow Matt Chatterley
- Source data on Crossbow clawrenc@cup.hp.com
- Source data on Crossbow daggers@iquest.net
- Source data on Crossbow Rudy Neeser
- Source data on Crossbow Malcolm Tester II
- Source data on Crossbow Travis Casey
- Source data on Crossbow rayzam
- Source data on Crossbow Blane Bramble
- Source data on Crossbow Daniel Carruth
- Source data on Crossbow Michael Tresca
- Source data on Crossbow Bobby Martin
- Source data on Crossbow Christopher Kohnert
- Source data on Crossbow Bobby Martin
- Source data on Crossbow Christopher Kohnert
- Source data on Crossbow Dave Rickey
- Source data on Crossbow werda555@yahoo.com
- Source data on Crossbow Nathan Yospe
- Source data on Crossbow Travis Casey
- Source data on Crossbow Bobby Martin
- Source data on Crossbow Hans-Henrik Staerfeldt
- Source data on Crossbow Bobby Martin
- Source data on Crossbow Ben Tolputt
- Source data on Crossbow andy.wharton@ascentialsoftware.com
- Source data on Crossbow Skaei@aol.com
- Source data on Crossbow rayzam
- Public Archives (META: Making the list public?) Brandon Gillespie
- Socrates - A brief look at AI(?) Jon A. Lambert
- Evil coders from beyond the grave Matt Chatterley
- Evil coders from beyond the grave Orion Henry
- Evil coders from beyond the grave Matt Chatterley
- Evil coders from beyond the grave Chris Gray
- Evil coders from beyond the grave Matt Chatterley
- Evil coders from beyond the grave Adam Wiggins
- Evil coders from beyond the grave Matt Chatterley
- Graphical MUDs Michael Hohensee
- Graphical MUDs Cynbe ru Taren
- Graphical MUDs Michael Hohensee
- Graphical MUDs Shawn Halpenny
- Graphical MUDs clawrenc@cup.hp.com
- Graphical MUDs Chris Gray
- Brief bio Niklas Elmqvist
- Brief bio Martin Keegan
- Multi-threaded programming under Linux Greg Munt
- Multi-threaded programming under Linux Nathan Yospe
- Multi-threaded programming under Linux Cynbe ru Taren
- Multi-threaded programming under Linux S001GMU@nova.wright.edu
- Multi-threaded programming under Linux Chris Gray
- Multi-threaded programming under Linux Jeff Kesselman
- Multi-threaded programming under Linux Cynbe ru Taren
- Multi-threaded programming under Linux Orion Henry
- Multi-threaded programming under Linux Michael Hohensee
- Multi-threaded programming under Linux] Michael Hohensee
- Multi-threaded programming under Linux clawrenc@cup.hp.com
- Multi-threaded programming under Linux Jon A. Lambert
- Multi-threaded programming under Linux Nathan Yospe
- Multi-threaded programming under Linux Jon A. Lambert
- Multi-threaded programming under Linux Alex Oren
- Multi-threaded programming under Linux clawrenc@cup.hp.com
- Multi-threaded programming under Linux clawrenc@cup.hp.com
- (fwd) LP: How does it work? coder@ibm.net
The following applies to the recent lockless DB model discussion:
From: clawrenc@cup.hp.com (Chris Lawrence (Contra))
Newsgroups: rec.games.mud.lp
Subject: Re: LP: How does it work?
Date: 22 Jul 1997 21:31:21 GMT
Apologies for the long quote -- I felt context was needed.
Felix A. Croes (dworkin@nospam.imaginary.com) wrote:
: Chris Lawrence (Contra) <clawrenc@cup.hp.com> wrote:
: > I basically JIT it.
: >
: > I took the approach of doing a quick currency check on the inheritance tree
: > of an object when a method is called on that object. If the compiled
: > inheritance tree is not current, then I recompile the object and move on.
: > Essentially its a JIT, but I short circuit the leaf conditions by having the
: > list of inheritance changes detect when the number of direct children falls
: > below a set value (or age) and then force recompiles for the remaining
: > children, (which may spawn new entries for the children of the recompiled
: > children). This is done to keep the change efficient for currency checks.
: >
: > The result is that changing root slows down the whole game until the
: > current working set gets recompiled. The game then operates a slightly
: > slower rate from there on out for a while as new additions to the working
: > set get recompiled. Eventually it just all pans out and you're down to
: > the standard steady rate of recompiles from general user activity.
: Suppose A and B are both at the root of separate inheritance trees. A calls
: functions in B, or rather, objects inheriting from A call functions in
: objects inheriting from B through the interfaces inherited from A and B.
: Only A calls these functions.
: I want to change the interface of B. To ensure that calls from A do not go
: awry, I recompile A and B at the same time (or in the same thread without
: any intervening code). Now assume that this recompile is done from a thread
: which passes through B, a few stack frames back.
: - If B changes instantly, then the stack frame for the function in B might
: no longer be valid.
: - If B changes instantly but the stack frames that use it remain tied to the
: old version, then a newly changed A might attempt to call a function in
: the old B.
: - If this is solved by postponing the actual replacement of code for A and B
: until the end of the thread (DGD does this), then JIT compiling
: reintroduces the problem: not all compilations happen during the same
: thread, so it is possible for a new A to call a function in an old B.
: How do you deal with the above situation?
Its actually fairly transparent for me as my base server is
multi-threaded. Taking the relationship between objects A and B etc
as described above:
I don't share code segments between code segments for MUDlib objects
between threads/events. This prevents the stack frame problems you
identify (outside of the fact that I don't really run a stack based
system). Instead, as each event requests a method from an object a
read only copy of that object is provided for the event. This
provides most of the solution for your last problem (the old code
being called) as a side effect of my lockless DB system:
-- When the event which is calling the old version of B terminates
and
attempts to commit, it fails due to one of its object dependancies
(B in
this case) having changed in the interim. So, the event fails to
commit
and is rescheduled to try again, now with the new versions of the
requisite
objects.
-- (This only applies to the case where A references the exact
object which
was changed). When the change to B occurs and is committed, change
notification messages are sent to all events which currently
reference B
(members of its interested party list). This acts as an early
warning
system to the event that it will likely fail to commit.
This still leaves a corner case open:
The objects are A, B and C.
A and C are children of B.
A references methods on C.
An event X is executing which calls A, which in turn calls C.
B is changed (method code altered).
The modify B event commits successfully.
The potential problem is that there is an implicit race condition for
which versions of A and C get loaded. If A's copy gets referenced
pre-change, and C's post-change, event X could have two implicitly
different versions of B loaded. This gets detected by the JIT code
when C attempts to call an method inherited from B. It attempts to
rebuild the inheritance tree for C, finds that it already has a
state-dated version of B incontext (per the tags on C), and thus
invalidates the entire event, which dies and reschedules.
--
J C Lawrence Internet: claw@null.net
----------(*) Internet: coder@ibm.net
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith... - Collision detection coder@ibm.net
- OT: Multi-threaded programming under Linux coder@ibm.net
- Motivating people Greg Munt
- Motivating people Chris Gray
- Motivating people Huibai
- Motivating people clawrenc@cup.hp.com
- Motivating people Jon A. Lambert
- Motivating people Greg Munt
- Motivating people clawrenc@cup.hp.com
- Motivating people clawrenc@cup.hp.com
- OT: Multi-threaded programming under linux Orion Henry
- Graphic MUDS. Jeff Kesselman
- Graphic MUDS. Chris Gray
- Graphic MUDS. Jeff Kesselman
- Graphic MUDS. Chris Gray
- Graphic MUDS. Matt Chatterley
- Graphic MUDS. Adam Wiggins
- Graphic MUDS. Chris Gray
- Graphic MUDS. Michael Hohensee
- Graphic MUDS. Jon A. Lambert
- Graphic MUDS. clawrenc@cup.hp.com
- Graphic MUDS. Adam Wiggins
- Graphic MUDS. Martin Keegan
- Graphic MUDS. Adam Wiggins
- Graphic MUDS. clawrenc@cup.hp.com
- Graphic MUDS. Martin Keegan
- Graphic MUDS. Matt Chatterley
- Graphic MUDS. Jeff Kesselman
- Graphic MUDS. clawrenc@cup.hp.com
- Stories? Marian Griffith
- KaVir Nathaniel Blundell
- OT: Server Web Site Jon A. Lambert
- Recent mail delivery problems... clawrenc@cup.hp.com
- Mail not getting to the list coder@ibm.net
- Mail not getting to the list Caliban Tiresias Darklock
- Mail not getting to the list Jeff Kesselman
- Graphic MUDS/Ultima Online Koster, Raph
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online Koster, Raph
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Koster, Raph
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online Alex Oren
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Koster, Raph
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Chris Gray
- Graphic MUDS/Ultima Online Richard Woolcock
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Chris Gray
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online Nathan Yospe
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Richard Woolcock
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Richard Woolcock
- Graphic MUDS/Ultima Online Nathan Yospe
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Richard Woolcock
- Graphic MUDS/Ultima Online Nathan Yospe
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online Koster, Raph
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online Michael Hohensee
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Matt Chatterley
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online Adam Wiggins
- Graphic MUDS/Ultima Online Jeff Kesselman
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- Graphic MUDS/Ultima Online clawrenc@cup.hp.com
- First Muds - newbie magic? Nathan Yospe
- First Muds - newbie magic? clawrenc@cup.hp.com
- First Muds - newbie magic? Martin Keegan
- Dynamic Descriptions Nathan Yospe
- Dynamic Descriptions Chris Gray
- Dynamic Descriptions Martin Keegan
- Dynamic Descriptions clawrenc@cup.hp.com
- Dynamic Descriptions Nathan Yospe
- Dynamic Descriptions Jeff Kesselman
- Dynamic Descriptions clawrenc@cup.hp.com
- Dynamic Descriptions Jeff Kesselman
- Persistant worlds, Dan Huibai
- Worlds VS Games, etc {was GMuds, UO} Nathan Yospe
- Worlds VS Games, etc {was GMuds, UO} Koster, Raph
- OT: NIS/AlterNIC and the DNS system Caliban Tiresias Darklock
- OT: Mail not getting to the list clawrenc@cup.hp.com
- OT: Mail not getting to the list clawrenc@cup.hp.com
- Persistance/stability Chris Gray
- Persistance/stability Miroslav Silovic
- Persistance/stability Matt Chatterley
- Persistance/stability clawrenc@cup.hp.com
- Persistance/stability Chris Gray
- Persistance/stability Brandon Gillespie
- Persistance/stability Adam Wiggins
- Persistance/stability Chris Gray
- Persistance/stability Adam Wiggins
- Tilting at the SimWindmill - was UO Jon A. Lambert
- DESIGN: The purpose of MUDding? coder@ibm.net
- DESIGN: The purpose of MUDding? Brandon Van Every
- DESIGN: The purpose of MUDding? Matt Chatterley
- DESIGN: The purpose of MUDding? Brandon Van Every
- DESIGN: The purpose of MUDding? Matt Chatterley
- DESIGN: The purpose of MUDding? clawrenc@cup.hp.com
- DESIGN: The purpose of MUDding? Matt Chatterley
- DESIGN: The purpose of MUDding? Jeff Kesselman
- DESIGN: The purpose of MUDding? Jeff Kesselman
- DESIGN: The purpose of MUDding? clawrenc@cup.hp.com
- DESIGN: The purpose of MUDding? clawrenc@cup.hp.com
- DESIGN: The purpose of MUDding? clawrenc@cup.hp.com