So... I got tired of not being able to use threading with Hermites... so I finally went in there and fixed it.
I fixed it by turning off the caching that Roy was doing when libMesh is compiled with thread support. Note that this might slow things down if you happen to have compiled your library with thread support... but aren't actually using threads. But I think the trade off is nice... you can now use threads to solve fourth order problems... no nasty bugs to grab you... or asserts to hit. Also... through this process I spotted a couple of other non-threadsafe operations going on in some of the constraint projection stuff (mostly having to do with PointLocator initialization). I put proper locks around that using the "Double Checked Lock Pattern" for speed... so it's good to go now. Roy: Take a look at what I did and let me know if you don't like it. My intention was to make sure I didn't slow down people that weren't compiling libMesh with threading... while providing correct code execution for people that do compile with threading. Derek ------------------------------------------------------------------------------ SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW http://p.sf.net/sfu/solaris-dev2dev _______________________________________________ Libmesh-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-devel
