Hi Alan I think the small change I purpose will do the trick. In no way it will mess up with the normal functionality of the driver but it will allow all qt drivers to be used inside a qt program. I've tested it. I Think Alban Rochel never considered necessary to use the drivers from a qt program he decided that from a qt program the normal way was to use the the qt widget driver (not acceptable in my point of view). With the small change I made the qt-example is not affected and all the others drivers can be called from a qt program to produce image files.
cheers, On Sat, Dec 22, 2018 at 9:30 PM Alan W. Irwin <alan.w.irwin1...@gmail.com> wrote: > On 2018-12-20 13:21-0800 Alan W. Irwin wrote: > > > On 2018-12-20 18:56-0000 António Rodrigues Tomé wrote: > > > >> Hi Alan > >> I do not completely understand the need of using a mutex in the qt > driver > >> however > >> without any change in the actual driver approach it is easy to allow the > >> driver to work well within a qt app and also in any other c or c++ > program > >> if in the file qt.cpp function bool initQtApp( bool isGUI ) > >> we add after the ++appCounter; line (line 90) > >> the instruction > >> if(appCounter == 1 && qApp != NULL) ++appCounter; > >> this will prevent the call > >> delete qApp; > >> when one closes the driver within a qt application, that would crash teh > >> application, and it does not conflict with the actual behavior of the > qt > >> driver it onnly takes account for the fact that there is a qApp that was > >> not started by the driver. > > > > Hi António: > [...] > > So from the point of view of a non-expert for this code, I would > > suggest if you think the mutex is no longer needed because of your > > change, then go ahead an remove it to see whether that combined change > > passes all tests you care to make including ideally running the > > comprehensive test script as documented in > > doc/wiki_source/Testing_PLplot. > > With regard to the mutex, I have included what Alban initially said about > it way back when. > > From his comment my guess is the mutex is a necessity to keep the Qt > components of PLplot thread-safe because the PLplot core is not thread > safe (although fixing that bad state of affairs is on our long-term > agenda). > And subsequently there was a whole lot of plplot-devel traffic about > properly setting up that mutex with no question from anyone about its > necessity. > > Anyhow, forget my naive idea above that you might want to drop the mutex. > > Alan > > ---------- Forwarded message ---------- > Date: Fri, 20 Mar 2009 17:00:49 +0000 > From: Alban Rochel <a.roc...@imperial.ac.uk> > To: Alan W. Irwin <ir...@beluga.phys.uvic.ca> > Subject: Qt driver update > > Alan, > > I've made a break from QSAS for an hour and I've made a couple of > improvements > to the Qt driver. > > - I've introduced a mutex to make some parts thread-safe (I haven't > checked if > all the driver was). > - Someone noticed that when 2 qtwidgets were running on 2 streams, closing > them > didn't close the driver properly. This should be fixed by now. When qApp > is > run, all the qtwidgets created before are tagged as being run, and so the > driver shouldn't try to run one qApp per widget. > > Cheers, > > Alban > > __________________________ > Alan W. Irwin > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > -- António Rodrigues Tomé Universidade da Beira Interior Instituto D. Luís (lab associado) email address: art...@gmail.com art...@ubi.pt http://www.researcherid.com/rid/A-5681-2013
_______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel