Update of /cvsroot/openvrml/openvrml
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18785
Modified Files:
ChangeLog
Log Message:
Require that all threads loading EXTERNPROTO implementations are joined before destroying the browser. (Otherwise, we deadlock.)
Index: ChangeLog
===================================================================
RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v
retrieving revision 1.1282
retrieving revision 1.1283
diff -C2 -d -r1.1282 -r1.1283
*** ChangeLog 27 Jul 2006 00:32:36 -0000 1.1282
--- ChangeLog 28 Jul 2006 07:04:18 -0000 1.1283
***************
*** 1,2 ****
--- 1,26 ----
+ 2006-07-28 Braden McDaniel <br...@en...>
+
+ Require that all threads loading EXTERNPROTO implementations are
+ joined before destroying the browser. (Otherwise, we deadlock.)
+
+ * src/libopenvrml/openvrml/Vrml97Parser.g
+ (externproto): Pass browser::load_proto_thread_group_ to the
+ externproto_node_metatype constructor.
+ * src/libopenvrml/openvrml/browser.cpp
+ (externproto_node_metatype::load_proto_thread_): Changed to a raw
+ pointer. The thread is now owned by
+ browser::load_proto_thread_group_.
+ (externproto_node_metatype::externproto_node_metatype(const
+ openvrml::node_metatype_id &, const openvrml::scene &, const
+ std::vector<std::string> &, boost::thread_group &)): Pass the
+ thread_group that owns the load_proto threads; that is,
+ browser::load_proto_thread_group_.
+ (openvrml::browser::~browser()): Join all the
+ load_proto_thread_group_ threads.
+ (openvrml::browser::set_world(resource_istream &)): Join all the
+ load_proto_thread_group_ threads when clearing the current scene.
+ * src/libopenvrml/openvrml/browser.cpp
+ (openvrml::browser): Added load_proto_thread_group_ member.
+
2006-07-26 Braden McDaniel <br...@en...>
|