Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2146)

Unified Diff: base/task_scheduler/task_tracker.cc

Issue 2427963002: Support FileDescriptorWatcher in TaskScheduler. (Closed)
Patch Set: nacl Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/task_scheduler/task_tracker.cc
diff --git a/base/task_scheduler/task_tracker.cc b/base/task_scheduler/task_tracker.cc
index be54614bec03fc63c555e8435cf62c529f642904..163e87a3baa50cb5e237d6dc635588d40b59db71 100644
--- a/base/task_scheduler/task_tracker.cc
+++ b/base/task_scheduler/task_tracker.cc
@@ -20,6 +20,10 @@
#include "base/trace_event/trace_event.h"
#include "base/values.h"
+#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
+#include "base/files/file_descriptor_watcher_posix.h"
+#endif
+
namespace base {
namespace internal {
@@ -167,10 +171,23 @@ class TaskTracker::State {
DISALLOW_COPY_AND_ASSIGN(State);
};
-TaskTracker::TaskTracker()
+TaskTracker::TaskTracker(
+#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
+ MessageLoopForIO* watch_file_descriptor_message_loop
+#endif
+ )
: state_(new State),
flush_cv_(flush_lock_.CreateConditionVariable()),
- shutdown_lock_(&flush_lock_) {}
+ shutdown_lock_(&flush_lock_)
+#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
+ ,
+ watch_file_descriptor_message_loop_(watch_file_descriptor_message_loop)
+#endif
+{
+#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
+ DCHECK(watch_file_descriptor_message_loop_);
+#endif
+}
TaskTracker::~TaskTracker() = default;
void TaskTracker::Shutdown() {
@@ -223,6 +240,12 @@ bool TaskTracker::RunTask(std::unique_ptr<Task> task,
TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN);
{
+#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
+ // Support FileDescriptorWatcher for the scope of the task.
+ FileDescriptorWatcher file_descriptor_watcher(
+ watch_file_descriptor_message_loop_);
+#endif
+
// Set up SequenceToken as expected for the scope of the task.
ScopedSetSequenceTokenForCurrentThread
scoped_set_sequence_token_for_current_thread(sequence_token);

Powered by Google App Engine
This is Rietveld 408576698