In fact, I'm already using pipes and more; I can just replace the Thread
call with a fork() and everything will work fine. The only idea I see I
can use is to physically separate both process in different binaries and
use named pipes...

On 01/09/15 16:05, Chris Vine wrote:
> On Tue, 1 Sep 2015 15:33:19 +0200
> rastersoft <ras...@rastersoft.com> wrote:
>> Thanks for your answer. Unfortunately, I'm running out of options:
>> currently I'm using threads, but there is a nasty bug that makes my
>> program crash sometimes. It is very subtle, because it hapens usually
>> after being running for two-three days. It is a double free. I tried
>> with Valgrind, but when I use it, the error doesn't trigger, which
>> makes me suspect it is a race condition between both threads
>> (valgrind ensures that only one thread runs each time). I checked all
>> the code, and isolated everything as much as I could, and adding as
>> many locks as I could imagine, trying to remove that bug, but its
>> imposible, so I decided to separate the code in two independent
>> processes to be able to use valgrind and finally find what is
>> happening. But as you say, it seems I'll have to do something else...
> Can you fork() before you launch any new threads or call any gio/gtk+
> functions, and then perhaps communicate using pipes?  That should be
> safe.
>
> Chris
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>

-- 
Nos leemos
                         RASTER    (Linux user #228804)
ras...@rastersoft.com              http://www.rastersoft.com

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to