From: Zoran V. <zv...@ar...> - 2005-10-20 14:11:15
|
Am 19.10.2005 um 18:16 schrieb Zoran Vasiljevic: > Hi ! > > We have a pretty elaborate (and sometimes confusing) mechanism > for running various atXXX scripts. > > So, if I would like to: > > ns_atstartup X > ns_atstartup Y > ns_atstartup Z > > then the server will execute: > > Z > Y > X > > i.e. in the *reverse* order. This is because all of those > are just entered in a single-linked list and the head of > the list points always to the *last* registered item. > > This is suboptimal. > > In many real world scenarios, I will like to use the ns_atstartup > to schedule couple of scripts to do various initialization things. > It is often so that Y will depend on X and Z on Y to be successfull. > At the moment, I'm (mis)using the ns_job with a single thread and > post the jobs there, because it will then exectue them in FIFO fashion > (which is what I need). BUT: this is of course not optimal as it runs > parallely with the server startup and I have to be carefull to > accomodate > for that. > > So, I'm all for reversing the logic of script execution i.e. doing the > more natural way of runing them in FIFO fashion (now we have LIFO). > But, I'm afraid of the potential compatibility problems. What I would > like to see is if any of you would have objections to reversing the > logic, and if yes, ideas how we could make this compatible? > One idea would be: > > ns_atXXX ?-tail? $theScript > > I'd rather go after FIFO list walk then adding yet-another-option, > but I'm open to suggestions... I've done the coding. All ns_atXXX EXCEPT ns_atshutdown will now execute callbacks in FIFO fashion. The ns_atshutdown will execute the callbacks in LIFO fashion. This seems more natural to me. If nobody has anyhing against (Vlad already expressed himself) I will commit this. Cheers Zoran |