[Nel] Getting NeL up and running.

Vincent Archer archer@nevrax.com
Tue, 27 Feb 2001 18:00:05 +0100


According to Leighton Haynes:
>     Most of my 'fixes' aren't really, they address the symptoms rather
>     than the cause, though I don't think I've broken anything major 
>     with them ;) If anyone wants to give me some hints on what could
>     be causing them, please do. 

Well, we don't have hints, because, as you may surmise, these do not
occur here.

>           I gather the point of the Callback function is so that the 
>           client which has loaded the Config file can become aware 
>           of any changes to the parameters in the file, the time_service
>           doesn't appear to set any callbacks for this though. *shrug*

That's exactly what it's supposed to be, yes. So, either the callbacks
are set incorrectly, or they are called while they should not be.

>         the client was exiting with a message in the logfile about 
>           being unable to load file "data/". Managed to eventually track
>           it down to some of the texture loading code in 
>           code/nel/src/3d/landscape.cpp. The loading of the diffuse
>           texturemap doesn't do a check for textName == "" though
>           the loading of the alpha texture map does. Haven't worked 
>           out yet why it's decided that the textName is "" (it's too
>           late ;)). I modified the code to do a test for textName == ""
>           and made it default to loading the CTextureCross texture.

That's the strange part. It should not be loading an empty file name
at all. I suppose the check doesn't hurt either, so we'll look at
integrating it in future commits.

>     As some other comments - processes are defaulting under linux to
>     some (IMHO) really ugly behaviour of 'fork'ing another process,
>     the sole purpose of this appears to be to let them run in the 
>     background. I don't see any really good reason for doing this,

Well, there is one. Basically, if you look at these processes, you'll
see they first do a set of initialisations, then fork. The whole
fork-and-exit sequence is used to guarantee that service N+1 isn't
started before service N has at least performed the minimum required
initialisations.

>     since it can be quite easily achieved by 'nohup'ing it and 
>     shoving an '&' on the end of the line. Am I missing something?

You could too, but you'd have to slide in a "reasonable" sleep N in
the shell startup script. With reasonable varying a lot.

>     (It makes it a bugger to debug, I can't run 'strace' on them effectively
>     etc etc. Obviously, i just commented the code out of my version ;)
>     Perhaps a commandline switch would be more appropriate?)

That'll be added, yes.

-- 
Vincent Archer                                         Email: archer@nevrax.com

Nevrax France.                              Off on the yellow brick road we go!