Hi all,
I was wondering if anybody had any information on how to block on calls
of web::put until the client receives all of the content, OR, conversely
to flush the socket, OR, to detect if all web::put's have been received
by the client over the socket.
I'm having problems with websh & my application using large amounts of
memory which are never reclaimed by apache, so in an effort to reduce
the overhead of the process, I'd like to kill the socket. I initially
attempted to do this by using the retire method of the websh
interpreter, however, that does not seem to reclaim any memory
whatsoever (running apache 1.3 on freebsd 5).
code in question:
web::finalizer \
{
if {[getApacheMemoryUtilization] > 100000} \
{
#make this interpreter retire, it's memory is too high
web::interpcfg retire true
itcl::delete object [SingletonFactory::instance]
}
}
since this wasn't doing anything, i decided to just kill the child
process and force a new one to start, ie:
web::finalizer \
{
if {[getApacheMemoryUtilization] > 100000} \
{
#make this interpreter retire, it's memory is too high
web::interpcfg retire true
itcl::delete object [SingletonFactory::instance]
exec kill -9 [pid]
}
}
however, this has the awkward behaviour of truncating hte html received
by the client. i dont want to add sleeps into the code for various
amounts of time, as this code is in place at sites with large amounts of
latency, so determining the amount of time to sleep is difficult at
best. is there a way to determine whether the current websh socket is
flushed of data?
thanks,
d.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]