Migrate callers of MoreExecutors.sameThreadExecutor() to use either
MoreExecutors.directExecutor() or MoreExecutors.newDirectExecutorService()
based on whether the code requires an Executor or an ExecutorService instance.

This is being done to resolve some performance issues with the current
sameThreadExecutor() implementation, by allowing users who don’t need
ExecutorService#shutdown semantics to not pay for them, and to make the costs
more obvious for users who do need them.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=71585920
diff --git a/core/src/main/java/com/google/net/stubby/ChannelImpl.java b/core/src/main/java/com/google/net/stubby/ChannelImpl.java
index c4b925e..4a2e561 100644
--- a/core/src/main/java/com/google/net/stubby/ChannelImpl.java
+++ b/core/src/main/java/com/google/net/stubby/ChannelImpl.java
@@ -73,7 +73,7 @@
       }
       activeTransport = transportFactory.newClientTransport();
       activeTransport.addListener(
-          new TransportListener(activeTransport), MoreExecutors.sameThreadExecutor());
+          new TransportListener(activeTransport), MoreExecutors.directExecutor());
       transports.add(activeTransport);
       activeTransport.startAsync();
     }
@@ -221,7 +221,7 @@
                     // TODO(user): If their Future fails, should we Call.cancel()?
                     ours.set(null);
                   }
-                }, MoreExecutors.sameThreadExecutor());
+                }, MoreExecutors.directExecutor());
               }
             } catch (Throwable t) {
               ours.set(null);
diff --git a/core/src/main/java/com/google/net/stubby/newtransport/AbstractStream.java b/core/src/main/java/com/google/net/stubby/newtransport/AbstractStream.java
index 121e063..e041e7f 100644
--- a/core/src/main/java/com/google/net/stubby/newtransport/AbstractStream.java
+++ b/core/src/main/java/com/google/net/stubby/newtransport/AbstractStream.java
@@ -258,6 +258,6 @@
       public void run() {
         Closeables.closeQuietly(input);
       }
-    }, MoreExecutors.sameThreadExecutor());
+    }, MoreExecutors.directExecutor());
   }
 }