Hi,
Should Geany be calling g_thread_init() for the plugins? There is now 4 plugins at least affected[1][2][3][4].
[1] https://github.com/codebrainz/geany-plugins/commit/99afbc6d0286081c7586e75c8... [2] https://github.com/codebrainz/geany-plugins/blob/5b4b64b3d193f5fb5293a99ddc8... [3] http://pastebin.com/9MV5i0Gw [4] James Geboski is working on a new plugin and he got caught by this also.
On 27 March 2011 15:59, Matthew Brush mbrush@codebrainz.ca wrote:
Hi,
Should Geany be calling g_thread_init() for the plugins? There is now 4 plugins at least affected[1][2][3][4].
Its safe to call g_thread_init multiple times, but ...
Well, g_thread_init should not be called in plugin_init since that can be called from a signal callback and thats a no-no according to the docs.
There are also a list of other issues about when it can be called, right at the beginning of the program is a really good place.
And the link options need to be different for programs using g_thread_init, and having the plugins linked differently to the main app might have other issues.
So in general, if any plugin uses glib from threads then yes Geany should use g_thread_init once for all the program, and Geany and plugins should link with "pkg-config --libs gthread-2.0"
And since you have identified four that do use threads ...
Cheers Lex
[1] https://github.com/codebrainz/geany-plugins/commit/99afbc6d0286081c7586e75c8... [2] https://github.com/codebrainz/geany-plugins/blob/5b4b64b3d193f5fb5293a99ddc8... [3] http://pastebin.com/9MV5i0Gw [4] James Geboski is working on a new plugin and he got caught by this also. _______________________________________________ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
On Sun, 27 Mar 2011 16:38:46 +1100, Lex wrote:
On 27 March 2011 15:59, Matthew Brush mbrush@codebrainz.ca wrote:
Hi,
Should Geany be calling g_thread_init() for the plugins? There is now 4 plugins at least affected[1][2][3][4].
Its safe to call g_thread_init multiple times, but ...
Well, g_thread_init should not be called in plugin_init since that can be called from a signal callback and thats a no-no according to the docs.
There are also a list of other issues about when it can be called, right at the beginning of the program is a really good place.
And the link options need to be different for programs using g_thread_init, and having the plugins linked differently to the main app might have other issues.
So in general, if any plugin uses glib from threads then yes Geany should use g_thread_init once for all the program, and Geany and plugins should link with "pkg-config --libs gthread-2.0"
And since you have identified four that do use threads ...
...we should do it in Geany. I fully agree. Will add the changes later today.
Regards, Enrico
On Sun, 27 Mar 2011 12:45:46 +0200, Enrico wrote:
On Sun, 27 Mar 2011 16:38:46 +1100, Lex wrote:
On 27 March 2011 15:59, Matthew Brush mbrush@codebrainz.ca wrote:
Hi,
Should Geany be calling g_thread_init() for the plugins? There is now 4 plugins at least affected[1][2][3][4].
Its safe to call g_thread_init multiple times, but ...
Well, g_thread_init should not be called in plugin_init since that can be called from a signal callback and thats a no-no according to the docs.
There are also a list of other issues about when it can be called, right at the beginning of the program is a really good place.
And the link options need to be different for programs using g_thread_init, and having the plugins linked differently to the main app might have other issues.
So in general, if any plugin uses glib from threads then yes Geany should use g_thread_init once for all the program, and Geany and plugins should link with "pkg-config --libs gthread-2.0"
And since you have identified four that do use threads ...
...we should do it in Geany. I fully agree. Will add the changes later today.
Done in SVN.
Regards, Enrico
On Sat, 26 Mar 2011 21:59:21 -0700 Matthew Brush mbrush@codebrainz.ca wrote:
Should Geany be calling g_thread_init() for the plugins? There is now 4 plugins at least affected[1][2][3][4].
I tried to fix this for updatechecker based on a patch by Colomban and Matthew until there is a better solution available.
Cheers, Frank