I think that's OK to change, yes. I don't see why it's necessary to
init log_ the way it is now. initializeLogIfNecessary() has a purpose
though.

On Fri, Jun 17, 2016 at 2:39 AM, Prajwal Tuladhar <p...@infynyxx.com> wrote:
> Hi,
>
> The way log instance inside Logger trait is current being initialized
> doesn't seem to be thread safe [1]. Current implementation only guarantees
> initializeLogIfNecessary() is initialized in lazy + thread safe way.
>
> Is there a reason why it can't be just: [2]
>
> @transient private lazy val log_ : Logger = {
>     initializeLogIfNecessary(false)
>     LoggerFactory.getLogger(logName)
>   }
>
>
> And with that initializeLogIfNecessary() can be called without double
> locking.
>
> --
> --
> Cheers,
> Praj
>
> [1]
> https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/internal/Logging.scala#L44-L50
> [2]
> https://github.com/apache/spark/blob/8ef3399aff04bf8b7ab294c0f55bcf195995842b/core/src/main/scala/org/apache/spark/internal/Logging.scala#L35

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

Reply via email to