Workqueue: interface, test, and posix implementation
diff --git a/BUILD b/BUILD
index 7511320..78aa63d 100644
--- a/BUILD
+++ b/BUILD
@@ -204,6 +204,9 @@
"src/core/iomgr/udp_server.h",
"src/core/iomgr/wakeup_fd_pipe.h",
"src/core/iomgr/wakeup_fd_posix.h",
+ "src/core/iomgr/workqueue.h",
+ "src/core/iomgr/workqueue_posix.h",
+ "src/core/iomgr/workqueue_windows.h",
"src/core/json/json.h",
"src/core/json/json_common.h",
"src/core/json/json_reader.h",
@@ -334,6 +337,8 @@
"src/core/iomgr/wakeup_fd_nospecial.c",
"src/core/iomgr/wakeup_fd_pipe.c",
"src/core/iomgr/wakeup_fd_posix.c",
+ "src/core/iomgr/workqueue_posix.c",
+ "src/core/iomgr/workqueue_windows.c",
"src/core/json/json.c",
"src/core/json/json_reader.c",
"src/core/json/json_string.c",
@@ -474,6 +479,9 @@
"src/core/iomgr/udp_server.h",
"src/core/iomgr/wakeup_fd_pipe.h",
"src/core/iomgr/wakeup_fd_posix.h",
+ "src/core/iomgr/workqueue.h",
+ "src/core/iomgr/workqueue_posix.h",
+ "src/core/iomgr/workqueue_windows.h",
"src/core/json/json.h",
"src/core/json/json_common.h",
"src/core/json/json_reader.h",
@@ -584,6 +592,8 @@
"src/core/iomgr/wakeup_fd_nospecial.c",
"src/core/iomgr/wakeup_fd_pipe.c",
"src/core/iomgr/wakeup_fd_posix.c",
+ "src/core/iomgr/workqueue_posix.c",
+ "src/core/iomgr/workqueue_windows.c",
"src/core/json/json.c",
"src/core/json/json_reader.c",
"src/core/json/json_string.c",
@@ -1098,6 +1108,8 @@
"src/core/iomgr/wakeup_fd_nospecial.c",
"src/core/iomgr/wakeup_fd_pipe.c",
"src/core/iomgr/wakeup_fd_posix.c",
+ "src/core/iomgr/workqueue_posix.c",
+ "src/core/iomgr/workqueue_windows.c",
"src/core/json/json.c",
"src/core/json/json_reader.c",
"src/core/json/json_string.c",
@@ -1235,6 +1247,9 @@
"src/core/iomgr/udp_server.h",
"src/core/iomgr/wakeup_fd_pipe.h",
"src/core/iomgr/wakeup_fd_posix.h",
+ "src/core/iomgr/workqueue.h",
+ "src/core/iomgr/workqueue_posix.h",
+ "src/core/iomgr/workqueue_windows.h",
"src/core/json/json.h",
"src/core/json/json_common.h",
"src/core/json/json_reader.h",