This last set of messages brings up an ongoing issue I have with the circle code base as a whole. I'm not sure exactly how to label it though; perhaps I should fall back on my old line that 'circlemud is a tense system'. That is, you cannot push it very far, or it breaks. Examples: I had for a while been afflicited with a crash involving spec_proc'ed mobs which either removed themselves or others. It was sporadic, and not reproducable. Turns out that the function that fires the spec_procs simply iterates down the character list; whether it saves the next mob in the list or not is irrelevant - that could be the pointer to be freed upon death/purge. Two people editing rooms at the same time - one edits room 2000 - a new room, and the other edits room 3000. The 2000 finishes first, rnums are instantly updated, the other suddenly has his exit room references altered (though it still saves correctly). (may be an old ver of oasis) There's more, but the whole problem is not that the system is unworkable.. each of these cases it would be simple to fix the specific error. However, this sort of situation is very easy to cause without intensive prior knowledge, and lets face it, circle has it's fair share of wet behind the ears programers. Worse still, it's insanely difficult to diagnose, or even discover. I believe an object oriented approach to the problem would be the best bet - as much as I prefer C to C++, this is the direction I'm leaning. As an interim solution, perhaps much of the direct access to structures/data should be replaced with a bit of abstraction, accessor functions, or data manager functions (for the many lists, for example). For now, until I can make..basically a mud API, I'm still fixing on a point of conflict solution for each problem. I am curious though if anyone else is experiencing this issue, and if so, what's being done about it for your mud. PjD +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT