Re: [Vala] multithreading -> weird behaviour on win(msys) and macOS



Thank you very much!

I found my problem, was a "self-made thinking error"(threading and scope)

>One thing to try is compiling with debug information and then use G_DEBUG=fatal-criticals and a debugger. I use valaDevelop to debug valaDevelop, and i have an option "Break on critical" ;-)

Wolfgang

Am 12.03.19 um 19:21 schrieb Al Thomas via vala-list:
    > On Tuesday, 12 March 2019, 15:48:59 GMT, Wolfgang Mauer <wolfgang  mauer kabelmail de> wrote:
With Linux everything works like expected with no errors/warnings but on
Windows(10/MSYS64) and macOS it get lots of errors.
(valaDevelop.exe:2980): Gtk-CRITICAL **: 16:33:50.460:
gtk_text_view_get_buffer: assertion 'GTK_IS_TEXT_VIEW (text_view)' failed
These are type checks for the GType system. 
Seehttps://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/gtktextview.h#L42https://developer.gnome.org/gobject/stable/gobject-Type-Information.html#G-TYPE-CHECK-INSTANCE-TYPE:CAPS
Probably text_view is null, so you may have some kind of scoping problem. You are usingclosures that should 
encapsulate the enclosing scope.
One thing to try is compiling with debug information and then use G_DEBUG=fatal-criticals and a debugger.
For example see https://wiki.gnome.org/Projects/Vala/DeveloperDocumentation#Debugging

You are then in to checking versions of libraries on macOS and Windows and to see if
they are up to date as possible or comparable with what was used on Linux.

You also need to be checking the version of Vala used and the C code generated to make sure
there is nothing unusual.

Any idea ?
Nothing specific, but the above might give you some things to try.

                         // Timeout with 0 goes to "UI-Thread" ?! >                        GLib.Timeout.add(0, 
() =>
The 0 specifies the delay before the timeout source is called, nothing to do with a thread.GLib.Timeout.add() is a 
convenience method: https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-timeout-addIt adds the 
timeout to the global GMainContext and the docs advise "the callback will be invoked in whichever thread is 
running that maincontext"To specify the GMainContext you would need to use 
https://valadoc.org/glib-2.0/GLib.TimeoutSource.html and then attach() it to the relevantGMainContext.

Al




_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]