Package: lazarus-0.9.30.2
Version: 0.9.30.2

When Lazarus in installed on system with glib >= 2.31 it freezes when
start. It is caused by changes in thread implementation in glib.

Patch developed by Zeljan Rikalo fixed the bug. Original bug report is
here: http://bugs.freepascal.org/view.php?id=21129

This also affects all programs compiled in Lazarus. After you patch
it, please also rebuild all packages depending on it. Thank you!

Regards

Petr
--- trunk/lcl/interfaces/gtk2/gtk2widgetset.inc	2012/01/07 17:12:12	34639
+++ trunk/lcl/interfaces/gtk2/gtk2widgetset.inc	2012/01/31 07:12:20	35051
@@ -1479,8 +1479,10 @@
       if GetThreadManager(TM) and Assigned(TM.InitManager) and g_thread_supported then
       begin
         g_thread_init(nil);
+        {$IFDEF USE_GTK_MAIN_OLD_ITERATION}
         gdk_threads_init;
         gdk_threads_enter;
+        {$ENDIF}
         fMultiThreadingEnabled := True;
       end;
     {$ELSE}
@@ -1847,7 +1849,9 @@
     if MultiThreadingEnabled then
     begin
       {$IFNDEF Win32}
+        {$IFDEF USE_GTK_MAIN_OLD_ITERATION}
         gdk_threads_leave;
+        {$ENDIF}
       {$ENDIF}
       fMultiThreadingEnabled := False;
     end;

Reply via email to