On Thu, Sep 30, 2010 at 2:46 AM, sebb <seb...@gmail.com> wrote:
> Just wondering if the Tailer API could be simplified by performing the
> thread start within the class?
> Is it ever going to be useful to have direct access to tailer thread?
> I suspect not, as the Listener should provide sufficient access.
>
> It's not safe to start a thread in the constructor (unless the ctor is
> final), but one could use static factory methods instead.
>
> So instead of:
>
>  TailerListener listener = ...
>  Tailer tailer = new Tailer(file, listener, delay);
>  Thread thread = new Thread(tailer);
>  thread.start();
>  ...
>  tailer.stop()
>
> one would do something like:
>
>  TailerListener listener = ...
>  Tailer tailer = Tailer.createTailer(file, listener, delay);
>  ...
>  tailer.stop()
>
> This simplifies the API, and allows the class to force the thread to
> be a daemon thread. It also stops the caller from messing with the
> thread.
>
> WDYT?

There are five different Thread constructors that take a Runnable and
a bunch of other methods that someone might want to use. I don't have
a problem providing a convenience static method - but it only saves
two lines of code - as long as they can construct one manually with or
without a Thread if they want to.

Niall

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to