Merge pull request #779 from adatao/adatao-global-SparkEnv
[HOTFIX] Extend thread safety for SparkEnv.get()
This commit is contained in:
commit
df4d10d630
|
@ -97,13 +97,26 @@ class SparkEnv (
|
|||
|
||||
object SparkEnv extends Logging {
|
||||
private val env = new ThreadLocal[SparkEnv]
|
||||
@volatile private var lastSetSparkEnv : SparkEnv = _
|
||||
|
||||
def set(e: SparkEnv) {
|
||||
lastSetSparkEnv = e
|
||||
env.set(e)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ThreadLocal SparkEnv, if non-null. Else returns the SparkEnv
|
||||
* previously set in any thread.
|
||||
*/
|
||||
def get: SparkEnv = {
|
||||
env.get()
|
||||
Option(env.get()).getOrElse(lastSetSparkEnv)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the ThreadLocal SparkEnv.
|
||||
*/
|
||||
def getThreadLocal : SparkEnv = {
|
||||
env.get()
|
||||
}
|
||||
|
||||
def createFromSystemProperties(
|
||||
|
|
Loading…
Reference in a new issue