Subject: Re: onc() induced lag...

From: David Miller <[email-masked]>
Date: Thu, 21 Jan 1993 08:25:50 -0800

[
	Apologies if you've seen this, but the admin of our
	mail host has been "tweaking" the sendmail.cf (with
	quite disasterous results)
]

Pavel Curtis:
|I have just made changes in the server code to limit the possible delay
|to about five seconds; if the connection can't be made in that time,
|E_INVARG is raised.
 
Andrew Wilson:
|Mmmm, I don't think five seconds will be enough.  Could you make it closer to
|15 seconds for us folks in Europe and the rest of the world.  The internet
|wasn't built by Ferrari you know.  At the very least it should be a
|'tuneable' (sp?) property which could be set at server-compile time.

Pavel Curtis:
|I will make it a parameter in the options.h file in the distribution.
|
|...
|
|If you want this to change the number of ticks allotted to *all* tasks in the
|system, then it really ought to be called something like
|`set_scheduler_parameters' and take four arguments, giving the numbers of
|ticks/seconds for foreground/background tasks.  I'm not entirely averse to
|providing such a facility.
|
|...
|
|I'm not very enthused about the whole thing, though, since I'd rather not
|encode too many assumptions about the scheduling algorithm into the language.
|I'd like to be able to make significant changes to that algorithm without
|breaking a lot of code.

Having been burned numerous times by compiled-in limits and options in
many applications, I'm all for an interface to let me tweek these at
runtime.  Perhaps something like:

	value get_server_option(string)

		Returns the value of the named option.  If the string
		is "all", a list of the server option names is
		returned.  Returns E_VARNF if the string is not a
		server option or "all".

	bool set_server_option(string, value)

		Sets the passed server option to the passed value.
		Returns true if the change was made.  Returns E_PERM
		if the caller does not have wizard perms, E_VARNF if
		the string is not a valid option name, E_INVARG if the
		value is of the wrong type, or E_RANGE if the value is
		out of range.

The first time I built LambdaMOO, I used the defaults for foreground
and background ticks and seconds.  After a little use, I found I
needed to raise these values, since ``help index'' was running out of
time.  So I had to built it again with higher fg limits.  A little
while later, we added anonymous ftp to the server machine.  Lo and
behold, ``help index'' broke again.  Rebuild again with higher limits.

Typing:
	; set_server_option("FG-SECONDS", 20)

would have been much easier!

DavidM/NightWalker

[									]
[    Since I first attempted to send this message, I've gone ahead      ]
[    and implemented set_server_option() and get_server_option().       ]
[    So far is supports the following options:                          ]
[									]
[	OOB-PREFIX							]
[	FG-TICKS							]
[	BG-TICKS							]
[	FG-SECONDS							]
[	BG-SECONDS							]
[	MAX-QUEUED-OUTPUT						]
[	CONNECT-TIMEOUT							]
[									]
[    If anyone wants the diffs, let me know.                            ]
[									]
[    DM/NW								]
[									]
-- 
DavidM			CATS - Commodore Applications and Technical Support
+1 215 431 9425		[email-masked]
"Commodore Amiga 3000UX - Born to Run UNIX SVR4"