ProcessMessage сильно загружает процессор

Issue #234 resolved
Pityulin Alexandr created an issue

При использовании Application.ProcessMessage на Ubuntu, приложение начинает использовать до 40% CPU и подвешивает систему.

Delphi 10.3 Update 3, FMXLinux 1.44, Ubuntu 18.04

P.S. На Windows и Maс OS работает нормально.

P.P.S. Аналогичный проект в Lazarus на Ubuntu так же работает нормально.

Comments (6)

  1. Pityulin Alexandr reporter

    нашел достаточно простой workaround, если вместо Application.ProcessMessage использовать методы из libgtk-3, то процессор не грузиться, UI не подвисат

    ...
    function gtk_events_pending: boolean; cdecl; external 'libgtk-3.so.0' name 'gtk_events_pending';
    function gtk_main_iteration: boolean; cdecl; external 'libgtk-3.so.0' name 'gtk_main_iteration';
    ...
    procedure ProcessMessages;
    begin
      while gtk_events_pending do begin
        gtk_main_iteration;
      end;
    end;
    ...
    

  2. Eugene Kryukov repo owner

    Интересно, попробуем. Вообще мы используем - gtk_main для основного цикла.

  3. Log in to comment