Gerhard Froehlich wrote:
> Hi,
>
>>>Hi
>>>I have a question regarding StoreJanitorImpl.
>>>As I see in the source StoreJanitorImpl implements only
>>>Runnable.
>>>As I was using org.apache.cocoon.Main it seems that
>>>after all work is done StoreJanitorImpl stays running,
>>>this prevents org.apache.cocoon.Main to terminate even
>>>after the Cocoon.dispose() call.
>>>
>>
>>If this is the case, then we need to do one of two things:
>>
>>1) Have StoreJanitor implement Startable (allowing it to
>> be explicitly started and stopped, safely)
>>2) Call thread.setDaemon(true) if no cleanup is necessary.
>>
> #1 I will take a look. But I need some re-read of the avalon
> dev docs.
> #2 is already set
RE #2: JVM issues?
RE #1:
The way I typically do this is a case like this:
class StartableDemo implements Startable, Runnable
{
private static boolean m_continue = true;
public void start() {
new Thread(this).start();
}
public void run() {
while (m_continue)
{
// do important stuff
}
}
public void stop() {
m_continue = false;
}
}
In this case, MRUStore will start this up like:
initialize()
{
this.janitor = new StartableDemo();
this.janitor.start();
}
dispose()
{
this.janitor.stop();
this.janitor = null; // remove reference so it can be garbage collected
}
--
"Those who would trade liberty for
temporary security deserve neither"
- Benjamin Franklin
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]