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;