Skip to content

Commit f11f8f1

Browse files
authored
Fix FlutterEngineOnVsync being called after engine shutdown (#355)
1 parent e72a4b2 commit f11f8f1

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

shell/platform/tizen/tizen_vsync_waiter.cc

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ TizenVsyncWaiter::TizenVsyncWaiter(FlutterTizenEngine* engine) {
3232
}
3333

3434
TizenVsyncWaiter::~TizenVsyncWaiter() {
35-
tdm_client_.reset();
35+
tdm_client_->OnEngineStop();
3636

3737
SendMessage(kMessageQuit, 0);
3838

@@ -130,10 +130,6 @@ TdmClient::TdmClient(FlutterTizenEngine* engine) {
130130
}
131131

132132
TdmClient::~TdmClient() {
133-
{
134-
std::lock_guard<std::mutex> lock(engine_mutex_);
135-
engine_ = nullptr;
136-
}
137133
if (vblank_) {
138134
tdm_client_vblank_destroy(vblank_);
139135
vblank_ = nullptr;
@@ -145,6 +141,15 @@ TdmClient::~TdmClient() {
145141
}
146142
}
147143

144+
bool TdmClient::IsValid() {
145+
return vblank_ && client_;
146+
}
147+
148+
void TdmClient::OnEngineStop() {
149+
std::lock_guard<std::mutex> lock(engine_mutex_);
150+
engine_ = nullptr;
151+
}
152+
148153
void TdmClient::AwaitVblank(intptr_t baton) {
149154
baton_ = baton;
150155
tdm_error ret = tdm_client_vblank_wait(vblank_, 1, VblankCallback, this);
@@ -155,10 +160,6 @@ void TdmClient::AwaitVblank(intptr_t baton) {
155160
tdm_client_handle_events(client_);
156161
}
157162

158-
bool TdmClient::IsValid() {
159-
return vblank_ && client_;
160-
}
161-
162163
void TdmClient::VblankCallback(tdm_client_vblank* vblank,
163164
tdm_error error,
164165
unsigned int sequence,

shell/platform/tizen/tizen_vsync_waiter.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class TdmClient {
2323
virtual ~TdmClient();
2424

2525
bool IsValid();
26+
void OnEngineStop();
2627
void AwaitVblank(intptr_t baton);
2728

2829
private:

0 commit comments

Comments
 (0)