[Prev][Next][Index][Thread]

# Re: Server Modification Suggestion

- Date: Fri, 22 Sep 1995 03:46:39 PDT
- From:
- Content-Type: text

    Colin F. McCormick wrote:
    >
    >
    >After browsing the server code, one can see that #0:do_command() (if it
    >exists) is actually called _before_ the command line verb.
    >
    >I'd really like a verb (say #0:do_after_command()) that would be called
    >_after_ the command line verb.  This should be easy; just put in another
    >run_server_task() call in do_command_task() in tasks.c, after the command
    >is actually executed.
    >
    >i.e.:
    >
    >>From tasks.c:
    >
    >... [from do_command_task()] ...
    >
    >	    if (run_server_task(pi.player, SYSTEM_OBJECT, "do_command", args,
    >				command, &result) != OUTCOME_DONE
    >		|| is_true(result)) {
    >
    >==> So we call #0:do_command() first, and unless it dies or returns a
    >    true value ...
    >
    >	/* Do nothing more; we assume :do_command handled it. */
    >	    } else if (p) {
    >		current_task_id = new_task_id();
    >		do_input_task(p, &pi, 0);
    >
    >==> ... we go ahead and do the task ...
    >
    >	    } else
    >		notify(pi.player, "I couldn't understand that.");
    >
    >==> ... or cry ignorance.
    >
    >...
    >
    >==> And here, I would like to put in a second
    >run_server_task(..."do_after_command"...).
    >

    There is a problem with this. If we suspend() or read() in command, the
    command task suspends, and :do_after_command is executed, *not* after
    the command, but immediately after suspend()..
    I've worked built-in command line prompt support in my MOO, so gained
    some experience with this type of problem. In fact, the problem above is
    that my first version of :prompt system owns. For logging, it may be no
    problem, but for prompt, it may be serious...
    (after patching around 200 lines of server code, I can handle suspend(),
    read(), and fork(), and I'm happy with it! ^_^ but when I decided to
    add MPL patch, patch doesn't patch codes 'cause I patched codes so
    extensively, and I have no choice but to patch codes by hand....)

    >
    >In my case, this would allow me to be able to spit out an list of verbs
    >available in the player's location, _after_ the output of an issued
    >command.  Anyone see any problems with this?  Pavel, any chance of getting
    >this into the 1.7.9 release?
    >
    >Colin
    >
    >############################################################################
    >#Colin F. McCormick	      Freelance Programmer -- MOO & Unix specialist#
    >#colin@tripod.tripod.com	http://student_97ffa.williams.edu/~cmccormi#
    ># GS/Lit/M d? p- c++(---) l+(++) u++ e++ m++(-) s+/ n+ h* f* !g @w++ t+ y? #
    >############################################################################
    >
    >

    - Ahn

- Prev: Re: Server Modification Suggestion
- Next: SERVER: panic - unhandled exception
- Index: MOO-cows
- Thread: MOO-cows

Home | Subject Index | Thread Index