There is some confusion about what the default value for timeout should be,
and what 0 should mean, and whether we should use 0 or -1 to mean "wait
forever".

The Java API docs are not very clear about this here:
http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html#get-long-java.util.concurrent.TimeUnit-

http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html#awaitTermination-long-java.util.concurrent.TimeUnit-

but clear that zero mean wait forever here:
http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#join-long-

We are unclear in org.apache.logging.log4j.core.util.ExecutorServices where
the docs says < 0 to wait forever, but the implementation actually do it
for <= 0.

We are also unclear in org.apache.logging.log4j.core.LifeCycle2 what 0 and
< 0 actually mean.

We need to clear this up, it is needed for
https://issues.apache.org/jira/browse/LOG4J2-1623

I suggest that we in ExecutorServices update the docs to match the
implemenation, and in LifeCycle2 specify that 0 mean the default timeout
for the component (this is what is currently implemented) and -1 for wait
forever.

-- 
[image: MagineTV]

*Mikael Ståldal*
Senior software developer

*Magine TV*
mikael.stal...@magine.com
Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com

Privileged and/or Confidential Information may be contained in this
message. If you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not
copy or deliver this message to anyone. In such case,
you should destroy this message and kindly notify the sender by reply
email.

Reply via email to