@@ -24,6 +24,10 @@ void proxy_post_task_callback(FlutterTask task, uint64_t target_time_nanos,
24
24
void proxy_desktop_binary_reply (const uint8_t * data , size_t data_size ,
25
25
void * user_data );
26
26
27
+ bool runtime_os_darwin ();
28
+
29
+ static size_t gTaskRunnerIdentifiers = 0 ;
30
+
27
31
// C helper
28
32
FlutterEngineResult runFlutter (void * user_data , FlutterEngine * engine ,
29
33
FlutterProjectArgs * Args ,
@@ -52,12 +56,17 @@ FlutterEngineResult runFlutter(void *user_data, FlutterEngine *engine,
52
56
platform_task_runner .runs_task_on_current_thread_callback =
53
57
proxy_runs_task_on_current_thread_callback ;
54
58
platform_task_runner .post_task_callback = proxy_post_task_callback ;
59
+ platform_task_runner .identifier = ++ gTaskRunnerIdentifiers ;
55
60
56
61
FlutterCustomTaskRunners custom_task_runners = {};
57
62
custom_task_runners .struct_size = sizeof (FlutterCustomTaskRunners );
58
63
// Render task and platform task are handled by the same TaskRunner
59
64
custom_task_runners .platform_task_runner = & platform_task_runner ;
60
- custom_task_runners .render_task_runner = & platform_task_runner ;
65
+ // TODO: Use the same platform and render task runners for all paltform
66
+ // (darwin only for now). https://github.com/flutter/flutter/issues/48651
67
+ if (runtime_os_darwin ()) {
68
+ custom_task_runners .render_task_runner = & platform_task_runner ;
69
+ }
61
70
Args -> custom_task_runners = & custom_task_runners ;
62
71
63
72
return FlutterEngineRun (FLUTTER_ENGINE_VERSION , & config , Args , user_data ,
0 commit comments