mirror of
https://github.com/status-im/react-native.git
synced 2025-01-18 05:23:26 +00:00
57bbce9bd9
Summary: @public EventBeat is an abstraction around proper event scheduling combining proper timing and proper threading. Event Queues use Event Beat to ensure that events are delivered on proper threads and in proper timing (probably batched). Consumers can `request` the next beat and `induce` immediatly beat. MainRunLoopEventBeat implements particular Event Beat synchronized with the main event loop and calling a callback on the main thread. Reviewed By: mdvacca Differential Revision: D8886229 fbshipit-source-id: 1a42fcbf4cd61c6cb4c502890566c98b00226f31
34 lines
712 B
C++
34 lines
712 B
C++
// Copyright (c) 2004-present, Facebook, Inc.
|
|
|
|
// This source code is licensed under the MIT license found in the
|
|
// LICENSE file in the root directory of this source tree.
|
|
|
|
#pragma once
|
|
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
#include <CoreFoundation/CFRunLoop.h>
|
|
#include <fabric/events/EventBeat.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/*
|
|
* Event beat associated with main run loop cycle.
|
|
* The callback is always called on the main thread.
|
|
*/
|
|
class MainRunLoopEventBeat final:
|
|
public EventBeat {
|
|
|
|
public:
|
|
MainRunLoopEventBeat();
|
|
~MainRunLoopEventBeat();
|
|
|
|
void induce() const override;
|
|
|
|
private:
|
|
CFRunLoopObserverRef mainRunLoopObserver_;
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|