You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ch...@apache.org on 2014/04/02 01:32:13 UTC

svn commit: r1583829 - in /pig/trunk: CHANGES.txt src/org/apache/pig/tools/pigstats/ScriptState.java

Author: cheolsoo
Date: Tue Apr  1 23:32:12 2014
New Revision: 1583829

URL: http://svn.apache.org/r1583829
Log:
PIG-3844: Make ScriptState InheritableThreadLocal for threads that need it
(amatsukawa via cheolsoo)

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/tools/pigstats/ScriptState.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1583829&r1=1583828&r2=1583829&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Tue Apr  1 23:32:12 2014
@@ -99,6 +99,8 @@ OPTIMIZATIONS
  
 BUG FIXES
 
+PIG-3844: Make ScriptState InheritableThreadLocal for threads that need it (amatsukawa via cheolsoo)
+
 PIG-3837: ant pigperf target is broken in trunk (cheolsoo)
 
 PIG-3836: Pig signature has has guava version dependency (amatsukawa via cheolsoo)

Modified: pig/trunk/src/org/apache/pig/tools/pigstats/ScriptState.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/tools/pigstats/ScriptState.java?rev=1583829&r1=1583828&r2=1583829&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/tools/pigstats/ScriptState.java (original)
+++ pig/trunk/src/org/apache/pig/tools/pigstats/ScriptState.java Tue Apr  1 23:32:12 2014
@@ -130,7 +130,12 @@ public abstract class ScriptState {
 
     private static final Log LOG = LogFactory.getLog(ScriptState.class);
 
-    private static ThreadLocal<ScriptState> tss = new ThreadLocal<ScriptState>();
+    /**
+     * PIG-3844. Each thread should have its own copy of ScriptState. We initialize the ScriptState
+     * for new threads with the ScriptState of its parent thread, using InheritableThreadLocal.
+     * Used eg. in PPNL running in separate thread.
+     */
+    private static InheritableThreadLocal<ScriptState> tss = new InheritableThreadLocal<ScriptState>();
 
     protected String id;