-
Notifications
You must be signed in to change notification settings - Fork 28.9k
Open
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectengineflutter/engine repository. See also e: labels.flutter/engine repository. See also e: labels.team-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
Description
Steps to reproduce

When RasterThreadMerger::MergeWithLease
is called right after fml::TaskRunner::RunNowOrPostTask
and before latch.Wait
, the platform thread will be blocked by deadlock.
I found a closed issue of ios: #94524. This issue was fixed by rendering platform views without merging the raster thread on ios platform. Is there any plan to fix this issue on android or other platforms?
Expected results
I have an idea:
Provide a function TaskRunner::RunSyncTask
. In this function, mark blocked_queue_id = MessageLoop::GetCurrentTaskQueueId()
. In DelayedTask
, add a filed blocked_queue_id_
. Tasks with blocked_queue_id_
have the highest priority. In MessageLoopTaskQueues::Merge
, flush all bloking DelayedTask
s of subsumed
task queue.
Actual results
PlatformThread Deadlock
Code sample
Code sample
[Paste your code here]
Screenshots or Video
Screenshots / Video demonstration
[Upload media here]
Logs
Logs
[Paste your logs here]
Flutter Doctor output
Doctor output
[Paste your output here]
Metadata
Metadata
Assignees
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectengineflutter/engine repository. See also e: labels.flutter/engine repository. See also e: labels.team-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team