Hi
I fixed this problem.
The solution is to used a global mutex that forbids any simultanate use of
PLplot primitives.
Especially when you are using class to handle each graph. Each class
handling a graph need to use this mutex to synchronize itself with all the
other graphs.

I don't know in which way my first implementation with mutexes was wrong but
this implementation fixes the problem.

Regards.
Johan Mazel

2010/9/28 Johan Mazel <[email protected]>

> Hi
> I am trying to display several curves with updates in real time of the
> displayed values. In order to do this, I launch my main window with
> GTK/Cairo/PLplot in the main program and a thread that generate the values
> to be displayed.
> All of this being coded in Ocaml through dedicated bindings.
>
> Each time that I need to change a curve from the thread, I reinitialize the
> plplot stream and create a new one with new values.
> However, since I am using Cairo driver inside GTK, the generated graphs and
> window are also affected by GTK handler launched by signals that redraws the
> widget and thus the curves.
>
> And unfortunately, some of these handler sometime launch at the same time
> as I am modifying some curves. This produces an error because some plplot
> stream are affected by commands in the wrong order (commands from the redraw
> in the handler and from the function to redraw curves with new values).
> I tried to avoid this by the use of mutexes that forbids the use of some
> function from both the main window with GTK/Cairo/PLplot and from the
> thread.
> However, this is not working.
>
> My guess is that GTK and its Ocaml bindings, lablgtk, are handling threads
> and mutexes in a special way.
> But my knowledge on this point is very sparse. And it would be very helpful
> if someone could help me on this point.
>
> Thanks in advance for your time.
>
> Regards.
> Johan Mazel
>
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Plplot-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-general

Reply via email to