Hi
>Gerhard Froehlich wrote:
>>>>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?
I don't know yet, I have to take a closer look....
>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
>}
Cool I put it on my todo list for this week. Hi out of work, but far away from
getting bored ;)
Cheers
Gerhard
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]