Introducing grpc_executor, for all your threading needs
diff --git a/BUILD b/BUILD
index 3e2a45b..2b21b19 100644
--- a/BUILD
+++ b/BUILD
@@ -184,6 +184,7 @@
     "src/core/iomgr/endpoint.h",
     "src/core/iomgr/endpoint_pair.h",
     "src/core/iomgr/exec_ctx.h",
+    "src/core/iomgr/executor.h",
     "src/core/iomgr/fd_posix.h",
     "src/core/iomgr/iocp_windows.h",
     "src/core/iomgr/iomgr.h",
@@ -319,6 +320,7 @@
     "src/core/iomgr/endpoint_pair_posix.c",
     "src/core/iomgr/endpoint_pair_windows.c",
     "src/core/iomgr/exec_ctx.c",
+    "src/core/iomgr/executor.c",
     "src/core/iomgr/fd_posix.c",
     "src/core/iomgr/iocp_windows.c",
     "src/core/iomgr/iomgr.c",
@@ -470,6 +472,7 @@
     "src/core/iomgr/endpoint.h",
     "src/core/iomgr/endpoint_pair.h",
     "src/core/iomgr/exec_ctx.h",
+    "src/core/iomgr/executor.h",
     "src/core/iomgr/fd_posix.h",
     "src/core/iomgr/iocp_windows.h",
     "src/core/iomgr/iomgr.h",
@@ -585,6 +588,7 @@
     "src/core/iomgr/endpoint_pair_posix.c",
     "src/core/iomgr/endpoint_pair_windows.c",
     "src/core/iomgr/exec_ctx.c",
+    "src/core/iomgr/executor.c",
     "src/core/iomgr/fd_posix.c",
     "src/core/iomgr/iocp_windows.c",
     "src/core/iomgr/iomgr.c",
@@ -1109,6 +1113,7 @@
     "src/core/iomgr/endpoint_pair_posix.c",
     "src/core/iomgr/endpoint_pair_windows.c",
     "src/core/iomgr/exec_ctx.c",
+    "src/core/iomgr/executor.c",
     "src/core/iomgr/fd_posix.c",
     "src/core/iomgr/iocp_windows.c",
     "src/core/iomgr/iomgr.c",
@@ -1257,6 +1262,7 @@
     "src/core/iomgr/endpoint.h",
     "src/core/iomgr/endpoint_pair.h",
     "src/core/iomgr/exec_ctx.h",
+    "src/core/iomgr/executor.h",
     "src/core/iomgr/fd_posix.h",
     "src/core/iomgr/iocp_windows.h",
     "src/core/iomgr/iomgr.h",