未验证 提交 15062ca7 编写于 作者: G George Wright 提交者: GitHub

Revert "Re-arm timer as necessary in MessageLoopFuchsia" (#16568)

This reverts commit 8ec994b4.
上级 c4c6ef67
......@@ -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"
......@@ -316,32 +315,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, 10);
ASSERT_LE(ms, 25);
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();
}
......@@ -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;
......@@ -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);
}
......
......@@ -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"
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册