Forum OpenACS Q&A: Re: Long-running AOLServer is forgetful?

Collapse
Posted by Don Baccus on
Watching is indeed turned off if performance mode is enabled.

Andrew's description of how it works is incorrect.  Each thread will reload the watched files when they next serve a request, with the call to the apm proc located in the request processor.  The mtime for the file at watch time is cached for all threads in an nsv array, then each thread does a "file mtime" and compares it to the cached mtime.  If it differs, the file is sourced into the current interpreter.  The code looks like it might be susceptible to race conditions but as Andrew points out it's really meant for development.  That why setting performance mode "true" turns off the check.

Also ... if you're making changes to /www .tcl files the caching is being done by AOLserver, with mtime also being used to determine when to recompile the file.  You don't need to "watch" because AOLserver checks each time the page is served (/tcl libarary files are different because they're never served, they just consist of procs called from served pages)

So ISTM that something else is the culprit here.  Are there any proxy servers in the loop?  What are the browser cache settings? etc etc