Skip to content

Commit

Permalink
Revert "Re-arm timer as necessary in MessageLoopFuchsia"
Browse files Browse the repository at this point in the history
This reverts commit 9b0c368.
  • Loading branch information
NoamDev authored Feb 27, 2020
1 parent 8654bc4 commit 929a349
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 46 deletions.
6 changes: 4 additions & 2 deletions fml/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,6 @@ executable("fml_unittests") {
"memory/weak_ptr_unittest.cc",
"message_loop_task_queues_merge_unmerge_unittests.cc",
"message_loop_task_queues_unittests.cc",
"message_loop_unittests.cc",
"message_unittests.cc",
"paths_unittests.cc",
"platform/darwin/string_range_sanitization_unittests.mm",
Expand All @@ -244,7 +243,10 @@ executable("fml_unittests") {

# TODO(gw280): Figure out why these tests don't work currently on Fuchsia
if (!is_fuchsia) {
sources += [ "file_unittest.cc" ]
sources += [
"file_unittest.cc",
"message_loop_unittests.cc",
]
}

deps = [
Expand Down
30 changes: 0 additions & 30 deletions fml/message_loop_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include "flutter/fml/build_config.h"
#include "flutter/fml/concurrent_message_loop.h"
#include "flutter/fml/message_loop.h"
#include "flutter/fml/message_loop_impl.h"
#include "flutter/fml/synchronization/count_down_latch.h"
#include "flutter/fml/synchronization/waitable_event.h"
#include "flutter/fml/task_runner.h"
Expand Down Expand Up @@ -310,32 +309,3 @@ TEST(MessageLoop, CanCreateConcurrentMessageLoop) {
latch.Wait();
ASSERT_GE(thread_ids.size(), 1u);
}

TEST(MessageLoop, TIME_SENSITIVE(WakeUpTimersAreSingletons)) {
auto loop_impl = fml::MessageLoopImpl::Create();

const auto t1 = fml::TimeDelta::FromMilliseconds(10);
const auto t2 = fml::TimeDelta::FromMilliseconds(20);

const auto begin = fml::TimePoint::Now();

// Register a task scheduled for 10ms in the future. This schedules a
// WakeUp call on the MessageLoopImpl with that fml::TimePoint
loop_impl->PostTask(
[&]() {
auto delta = fml::TimePoint::Now() - begin;
auto ms = delta.ToMillisecondsF();
ASSERT_GE(ms, 18);
ASSERT_LE(ms, 22);

loop_impl->Terminate();
},
fml::TimePoint::Now() + t1);

// Call WakeUp manually to change the WakeUp time to the future. If the
// timer is correctly set up to be rearmed instead of a new timer scheduled,
// the above task will be executed at t2 instead of t1 now.
loop_impl->WakeUp(fml::TimePoint::Now() + t2);

loop_impl->Run();
}
15 changes: 4 additions & 11 deletions fml/platform/fuchsia/message_loop_fuchsia.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,13 @@
#include "flutter/fml/platform/fuchsia/message_loop_fuchsia.h"

#include <lib/async-loop/default.h>
#include <lib/async/cpp/task.h>
#include <lib/zx/time.h>

namespace fml {

MessageLoopFuchsia::MessageLoopFuchsia()
: loop_(&kAsyncLoopConfigAttachToCurrentThread) {
auto handler = [this](async_dispatcher_t* dispatcher, async::Task* task,
zx_status_t status) { RunExpiredTasksNow(); };
task_.set_handler(handler);
}
: loop_(&kAsyncLoopConfigAttachToCurrentThread) {}

MessageLoopFuchsia::~MessageLoopFuchsia() = default;

Expand All @@ -33,12 +30,8 @@ void MessageLoopFuchsia::WakeUp(fml::TimePoint time_point) {
due_time = zx::nsec((time_point - now).ToNanoseconds());
}

std::scoped_lock lock(task_mutex_);

auto status = task_.Cancel();
FML_DCHECK(status == ZX_OK || status == ZX_ERR_NOT_FOUND);

status = task_.PostDelayed(loop_.dispatcher(), due_time);
auto status = async::PostDelayedTask(
loop_.dispatcher(), [this]() { RunExpiredTasksNow(); }, due_time);
FML_DCHECK(status == ZX_OK);
}

Expand Down
3 changes: 0 additions & 3 deletions fml/platform/fuchsia/message_loop_fuchsia.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
#define FLUTTER_FML_PLATFORM_FUCHSIA_MESSAGE_LOOP_FUCHSIA_H_

#include <lib/async-loop/cpp/loop.h>
#include <lib/async/cpp/task.h>

#include "flutter/fml/macros.h"
#include "flutter/fml/message_loop_impl.h"
Expand All @@ -26,8 +25,6 @@ class MessageLoopFuchsia : public MessageLoopImpl {
void WakeUp(fml::TimePoint time_point) override;

async::Loop loop_;
std::mutex task_mutex_;
async::Task task_;

FML_FRIEND_MAKE_REF_COUNTED(MessageLoopFuchsia);
FML_FRIEND_REF_COUNTED_THREAD_SAFE(MessageLoopFuchsia);
Expand Down

0 comments on commit 929a349

Please sign in to comment.