You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(128) |
Dec
(65) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(48) |
Feb
(132) |
Mar
(95) |
Apr
(47) |
May
(54) |
Jun
(2) |
Jul
(57) |
Aug
(109) |
Sep
(131) |
Oct
(186) |
Nov
(105) |
Dec
(78) |
2007 |
Jan
(125) |
Feb
(105) |
Mar
(52) |
Apr
(104) |
May
(63) |
Jun
(116) |
Jul
(76) |
Aug
|
Sep
(18) |
Oct
(93) |
Nov
(110) |
Dec
(169) |
2008 |
Jan
(90) |
Feb
(64) |
Mar
(41) |
Apr
(23) |
May
(6) |
Jun
(18) |
Jul
(10) |
Aug
(61) |
Sep
(139) |
Oct
(50) |
Nov
(55) |
Dec
(2) |
2009 |
Jan
|
Feb
(1) |
Mar
(62) |
Apr
(22) |
May
(17) |
Jun
(19) |
Jul
(40) |
Aug
(21) |
Sep
|
Oct
(40) |
Nov
(23) |
Dec
|
2010 |
Jan
(14) |
Feb
(40) |
Mar
(9) |
Apr
(11) |
May
(19) |
Jun
(4) |
Jul
(10) |
Aug
(22) |
Sep
(15) |
Oct
|
Nov
(2) |
Dec
|
2011 |
Jan
(13) |
Feb
(10) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
(2) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(33) |
May
(20) |
Jun
|
Jul
(8) |
Aug
(7) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Braden M. <br...@us...> - 2006-12-06 01:52:51
|
Update of /cvsroot/openvrml/openvrml/examples In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv23602/examples Modified Files: Tag: OpenVRML-0_16-BRANCH sdl_viewer.cpp Log Message: Set ios_base::badbit (instead of failbit) when stream construction does not produce a readable stream. Index: sdl_viewer.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/examples/sdl_viewer.cpp,v retrieving revision 1.10.2.3 retrieving revision 1.10.2.4 diff -C2 -d -r1.10.2.3 -r1.10.2.4 *** sdl_viewer.cpp 6 Dec 2006 01:21:39 -0000 1.10.2.3 --- sdl_viewer.cpp 6 Dec 2006 01:52:49 -0000 1.10.2.4 *************** *** 151,155 **** if (!this->buf_.open(path.c_str(), ios_base::in | ios_base::binary)) { ! this->setstate(ios_base::failbit); } } --- 151,155 ---- if (!this->buf_.open(path.c_str(), ios_base::in | ios_base::binary)) { ! this->setstate(ios_base::badbit); } } |
From: Braden M. <br...@us...> - 2006-12-06 01:22:06
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11576/src/libopenvrml/openvrml Modified Files: browser.cpp Log Message: Pass ios_base::binary when opening arbitrary (i.e., possibly not text) files. Windows requires this. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.196 retrieving revision 1.197 diff -C2 -d -r1.196 -r1.197 *** browser.cpp 5 Dec 2006 21:16:21 -0000 1.196 --- browser.cpp 6 Dec 2006 01:22:04 -0000 1.197 *************** *** 4664,4668 **** * // to read data from a stream that cannot provide it. * // ! * if (!this->buf_.open(path.c_str(), ios_base::in)) { * this->setstate(ios_base::failbit); * } --- 4664,4669 ---- * // to read data from a stream that cannot provide it. * // ! * if (!this->buf_.open(path.c_str(), ! * ios_base::in | ios_base::binary)) { * this->setstate(ios_base::failbit); * } |
From: Braden M. <br...@us...> - 2006-12-06 01:22:05
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11576 Modified Files: ChangeLog Log Message: Pass ios_base::binary when opening arbitrary (i.e., possibly not text) files. Windows requires this. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1392 retrieving revision 1.1393 diff -C2 -d -r1.1392 -r1.1393 *** ChangeLog 5 Dec 2006 21:16:20 -0000 1.1392 --- ChangeLog 6 Dec 2006 01:22:03 -0000 1.1393 *************** *** 1,4 **** --- 1,17 ---- 2006-12-05 Braden McDaniel <br...@en...> + Pass ios_base::binary when opening arbitrary (i.e., possibly not + text) files. Windows requires this. + + * examples/sdl_viewer.cpp + (resource_fetcher::do_get_resource(const std::string &): Pass the + ios_base::binary flag when opening the filebuf. + * src/libopenvrml/openvrml/browser.cpp + (openvrml::resource_fetcher::do_get_resource(const std::string &): + In the example in the doc-comment, pass the ios_base::binary flag + when opening the filebuf. + + 2006-12-05 Braden McDaniel <br...@en...> + Fixed relative URI resolution on Windows. |
From: Braden M. <br...@us...> - 2006-12-06 01:22:05
|
Update of /cvsroot/openvrml/openvrml/examples In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11576/examples Modified Files: sdl_viewer.cpp Log Message: Pass ios_base::binary when opening arbitrary (i.e., possibly not text) files. Windows requires this. Index: sdl_viewer.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/examples/sdl_viewer.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** sdl_viewer.cpp 5 Dec 2006 21:16:21 -0000 1.13 --- sdl_viewer.cpp 6 Dec 2006 01:22:04 -0000 1.14 *************** *** 143,147 **** resource_istream(&this->buf_) { ! if (!this->buf_.open(path.c_str(), ios_base::in)) { this->setstate(ios_base::failbit); } --- 143,148 ---- resource_istream(&this->buf_) { ! if (!this->buf_.open(path.c_str(), ! ios_base::in | ios_base::binary)) { this->setstate(ios_base::failbit); } |
From: Braden M. <br...@us...> - 2006-12-06 01:21:41
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11541/src/libopenvrml/openvrml Modified Files: Tag: OpenVRML-0_16-BRANCH browser.cpp Log Message: Pass ios_base::binary when opening arbitrary (i.e., possibly not text) files. Windows requires this. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.190.2.4 retrieving revision 1.190.2.5 diff -C2 -d -r1.190.2.4 -r1.190.2.5 *** browser.cpp 5 Dec 2006 21:15:10 -0000 1.190.2.4 --- browser.cpp 6 Dec 2006 01:21:39 -0000 1.190.2.5 *************** *** 5832,5836 **** * // to read data from a stream that cannot provide it. * // ! * if (!this->buf_.open(path.c_str(), ios_base::in)) { * this->setstate(ios_base::failbit); * } --- 5832,5837 ---- * // to read data from a stream that cannot provide it. * // ! * if (!this->buf_.open(path.c_str(), ! * ios_base::in | ios_base::binary)) { * this->setstate(ios_base::failbit); * } |
From: Braden M. <br...@us...> - 2006-12-06 01:21:41
|
Update of /cvsroot/openvrml/openvrml/examples In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11541/examples Modified Files: Tag: OpenVRML-0_16-BRANCH sdl_viewer.cpp Log Message: Pass ios_base::binary when opening arbitrary (i.e., possibly not text) files. Windows requires this. Index: sdl_viewer.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/examples/sdl_viewer.cpp,v retrieving revision 1.10.2.2 retrieving revision 1.10.2.3 diff -C2 -d -r1.10.2.2 -r1.10.2.3 *** sdl_viewer.cpp 5 Dec 2006 21:15:09 -0000 1.10.2.2 --- sdl_viewer.cpp 6 Dec 2006 01:21:39 -0000 1.10.2.3 *************** *** 149,153 **** resource_istream(&this->buf_) { ! if (!this->buf_.open(path.c_str(), ios_base::in)) { this->setstate(ios_base::failbit); } --- 149,154 ---- resource_istream(&this->buf_) { ! if (!this->buf_.open(path.c_str(), ! ios_base::in | ios_base::binary)) { this->setstate(ios_base::failbit); } |
From: Braden M. <br...@us...> - 2006-12-06 01:21:41
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11541 Modified Files: Tag: OpenVRML-0_16-BRANCH ChangeLog Log Message: Pass ios_base::binary when opening arbitrary (i.e., possibly not text) files. Windows requires this. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1310.2.69 retrieving revision 1.1310.2.70 diff -C2 -d -r1.1310.2.69 -r1.1310.2.70 *** ChangeLog 5 Dec 2006 21:15:07 -0000 1.1310.2.69 --- ChangeLog 6 Dec 2006 01:21:38 -0000 1.1310.2.70 *************** *** 1,4 **** --- 1,17 ---- 2006-12-05 Braden McDaniel <br...@en...> + Pass ios_base::binary when opening arbitrary (i.e., possibly not + text) files. Windows requires this. + + * examples/sdl_viewer.cpp + (browser::do_get_resource(const std::string &): Pass the + ios_base::binary flag when opening the filebuf. + * src/libopenvrml/openvrml/browser.cpp + (openvrml::browser::do_get_resource(const std::string &): In the + example in the doc-comment, pass the ios_base::binary flag when + opening the filebuf. + + 2006-12-05 Braden McDaniel <br...@en...> + Fixed relative URI resolution on Windows. |
From: Braden M. <br...@us...> - 2006-12-05 21:16:28
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6415/src/libopenvrml/openvrml Modified Files: browser.cpp Log Message: Fixed relative URI resolution on Windows. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.195 retrieving revision 1.196 diff -C2 -d -r1.195 -r1.196 *** browser.cpp 22 Nov 2006 00:05:18 -0000 1.195 --- browser.cpp 5 Dec 2006 21:16:21 -0000 1.196 *************** *** 3537,3544 **** # ifdef _WIN32 std::vector<char> cwd_buf(_MAX_PATH); ! while (!_getcwd(&cwd_buf.front(), cwd_buf.size()) && errno == ERANGE) { cwd_buf.resize(cwd_buf.size() * 2); } ! std::replace_if(cwd_buf.begin(), cwd_buf.begin() + strlen(&cwd_buf.front()) + 1, std::bind2nd(std::equal_to<char>(), '\\'), '/'); --- 3537,3550 ---- # ifdef _WIN32 std::vector<char> cwd_buf(_MAX_PATH); ! // ! // Path must begin with a slash. _getcwd returns something that ! // begins with a drive letter. ! // ! cwd_buf[0] = '/'; ! while (!_getcwd(&cwd_buf.front() + 1, cwd_buf.size()) ! && errno == ERANGE) { cwd_buf.resize(cwd_buf.size() * 2); } ! std::replace_if(cwd_buf.begin() + 1, cwd_buf.begin() + strlen(&cwd_buf.front()) + 1, std::bind2nd(std::equal_to<char>(), '\\'), '/'); *************** *** 3559,3563 **** } ! return relative_uri.resolve_against(uri(base_uri.str())); } } // namespace --- 3565,3570 ---- } ! const uri result = relative_uri.resolve_against(uri(base_uri.str())); ! return result; } } // namespace |
From: Braden M. <br...@us...> - 2006-12-05 21:16:26
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6415 Modified Files: ChangeLog Log Message: Fixed relative URI resolution on Windows. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1391 retrieving revision 1.1392 diff -C2 -d -r1.1391 -r1.1392 *** ChangeLog 4 Dec 2006 05:18:07 -0000 1.1391 --- ChangeLog 5 Dec 2006 21:16:20 -0000 1.1392 *************** *** 1,2 **** --- 1,15 ---- + 2006-12-05 Braden McDaniel <br...@en...> + + Fixed relative URI resolution on Windows. + + * examples/sdl_viewer.cpp + (resource_fetcher::do_get_resource(const std::string &): On + Windows, start the system path on the second character of the URI + path; the first character is a leading slash. + * src/libopenvrml/openvrml/browser.cpp + (create_file_url(const uri &)): Ensure the URI path begins with a + slash on Windows--_getcwd gets a path that starts with a drive + letter. + 2006-12-04 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-12-05 21:16:26
|
Update of /cvsroot/openvrml/openvrml/examples In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6415/examples Modified Files: sdl_viewer.cpp Log Message: Fixed relative URI resolution on Windows. Index: sdl_viewer.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/examples/sdl_viewer.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** sdl_viewer.cpp 22 Nov 2006 00:05:18 -0000 1.12 --- sdl_viewer.cpp 5 Dec 2006 21:16:21 -0000 1.13 *************** *** 203,212 **** "supported"); } // // file:// // ^ // 01234567 // ! string path = uri.substr(uri.find_first_of('/', 7)); auto_ptr<resource_istream> in(new file_resource_istream(path)); --- 203,228 ---- "supported"); } + // // file:// // ^ // 01234567 + static const string::size_type authority_start_index = 7; + // ! // On Windows we want to start at the drive letter, which is after the ! // first slash in the path. ! // ! // We ignore the content of the authority; a smarter implementation ! // should confirm that it is localhost, the machine name, or zero ! // length. ! // ! string::size_type path_start_index = ! # ifdef _WIN32 ! uri.find_first_of('/', authority_start_index) + 1; ! # else ! uri.find_first_of('/', authority_start_index); ! # endif ! string path = uri.substr(path_start_index); auto_ptr<resource_istream> in(new file_resource_istream(path)); |
From: Braden M. <br...@us...> - 2006-12-05 21:15:49
|
Update of /cvsroot/openvrml/openvrml/examples In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv5598/examples Modified Files: Tag: OpenVRML-0_16-BRANCH sdl_viewer.cpp Log Message: Fixed relative URI resolution on Windows. Index: sdl_viewer.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/examples/sdl_viewer.cpp,v retrieving revision 1.10.2.1 retrieving revision 1.10.2.2 diff -C2 -d -r1.10.2.1 -r1.10.2.2 *** sdl_viewer.cpp 31 Aug 2006 21:18:57 -0000 1.10.2.1 --- sdl_viewer.cpp 5 Dec 2006 21:15:09 -0000 1.10.2.2 *************** *** 209,218 **** "supported"); } // // file:// // ^ // 01234567 // ! string path = uri.substr(uri.find_first_of('/', 7)); auto_ptr<resource_istream> in(new file_resource_istream(path)); --- 209,234 ---- "supported"); } + // // file:// // ^ // 01234567 + static const string::size_type authority_start_index = 7; + // ! // On Windows we want to start at the drive letter, which is after the ! // first slash in the path. ! // ! // We ignore the content of the authority; a smarter implementation ! // should confirm that it is localhost, the machine name, or zero ! // length. ! // ! string::size_type path_start_index = ! # ifdef _WIN32 ! uri.find_first_of('/', authority_start_index) + 1; ! # else ! uri.find_first_of('/', authority_start_index); ! # endif ! string path = uri.substr(path_start_index); auto_ptr<resource_istream> in(new file_resource_istream(path)); |
From: Braden M. <br...@us...> - 2006-12-05 21:15:49
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv5598 Modified Files: Tag: OpenVRML-0_16-BRANCH ChangeLog Log Message: Fixed relative URI resolution on Windows. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1310.2.68 retrieving revision 1.1310.2.69 diff -C2 -d -r1.1310.2.68 -r1.1310.2.69 *** ChangeLog 4 Dec 2006 05:17:56 -0000 1.1310.2.68 --- ChangeLog 5 Dec 2006 21:15:07 -0000 1.1310.2.69 *************** *** 1,2 **** --- 1,15 ---- + 2006-12-05 Braden McDaniel <br...@en...> + + Fixed relative URI resolution on Windows. + + * examples/sdl_viewer.cpp + (browser::do_get_resource(const std::string &): On Windows, start + the system path on the second character of the URI path; the first + character is a leading slash. + * src/libopenvrml/openvrml/browser.cpp + (create_file_url(const uri &)): Ensure the URI path begins with a + slash on Windows--_getcwd gets a path that starts with a drive + letter. + 2006-12-04 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-12-05 21:15:22
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv5598/src/libopenvrml/openvrml Modified Files: Tag: OpenVRML-0_16-BRANCH browser.cpp Log Message: Fixed relative URI resolution on Windows. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.190.2.3 retrieving revision 1.190.2.4 diff -C2 -d -r1.190.2.3 -r1.190.2.4 *** browser.cpp 17 Nov 2006 06:47:06 -0000 1.190.2.3 --- browser.cpp 5 Dec 2006 21:15:10 -0000 1.190.2.4 *************** *** 3535,3542 **** # ifdef _WIN32 std::vector<char> cwd_buf(_MAX_PATH); ! while (!_getcwd(&cwd_buf.front(), cwd_buf.size()) && errno == ERANGE) { cwd_buf.resize(cwd_buf.size() * 2); } ! std::replace_if(cwd_buf.begin(), cwd_buf.begin() + strlen(&cwd_buf.front()) + 1, std::bind2nd(std::equal_to<char>(), '\\'), '/'); --- 3535,3548 ---- # ifdef _WIN32 std::vector<char> cwd_buf(_MAX_PATH); ! // ! // Path must begin with a slash. _getcwd returns something that ! // begins with a drive letter. ! // ! cwd_buf[0] = '/'; ! while (!_getcwd(&cwd_buf.front() + 1, cwd_buf.size()) ! && errno == ERANGE) { cwd_buf.resize(cwd_buf.size() * 2); } ! std::replace_if(cwd_buf.begin() + 1, cwd_buf.begin() + strlen(&cwd_buf.front()) + 1, std::bind2nd(std::equal_to<char>(), '\\'), '/'); *************** *** 3557,3561 **** } ! return relative_uri.resolve_against(uri(base_uri.str())); } } // namespace --- 3563,3568 ---- } ! const uri result = relative_uri.resolve_against(uri(base_uri.str())); ! return result; } } // namespace |
From: Braden M. <br...@us...> - 2006-12-04 05:18:09
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3537 Modified Files: ChangeLog configure.ac Log Message: Call g_thread_init to initialize GLib's thread support for openvrml-gtkplug. Create the GMainLoop for the command reader loop in the command reader thread instead of the main thread. Index: configure.ac =================================================================== RCS file: /cvsroot/openvrml/openvrml/configure.ac,v retrieving revision 1.102 retrieving revision 1.103 diff -C2 -d -r1.102 -r1.103 *** configure.ac 29 Nov 2006 19:04:48 -0000 1.102 --- configure.ac 4 Dec 2006 05:18:07 -0000 1.103 *************** *** 111,115 **** [mozilla_js_pkg=$REQUIRE_MOZILLA_JS], [have_js=no])]) ! PKG_CHECK_MODULES([GTK], [gtk+-2.0], , [have_gtk=no]) AC_PATH_XTRA AX_CHECK_GLU --- 111,115 ---- [mozilla_js_pkg=$REQUIRE_MOZILLA_JS], [have_js=no])]) ! PKG_CHECK_MODULES([GTK], [gtk+-2.0 gthread-2.0], , [have_gtk=no]) AC_PATH_XTRA AX_CHECK_GLU Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1390 retrieving revision 1.1391 diff -C2 -d -r1.1390 -r1.1391 *** ChangeLog 2 Dec 2006 07:20:20 -0000 1.1390 --- ChangeLog 4 Dec 2006 05:18:07 -0000 1.1391 *************** *** 1,2 **** --- 1,23 ---- + 2006-12-04 Braden McDaniel <br...@en...> + + Call g_thread_init to initialize GLib's thread support for + openvrml-gtkplug. Create the GMainLoop for the command reader + loop in the command reader thread instead of the main thread. + + * configure.ac: Incorporate gthread-2.0 flags into GTK_* + variables. + * src/openvrml-gtkplug/main.cpp + (command_channel_loop::command_channel_loop(GIOChannel &, + command_istream &)): Construct with a GIOChannel and a + command_istream. + (command_channel_loop::operator()() const): Create the GMainLoop + and its GMainContext here. + (command_channel_loop::main_loop_): Removed. + (command_channel_loop::command_channel_): Added. + (command_channel_loop::command_in_): Added. + (main(int, char *[])): Call g_thread_init. Moved creation of the + command reader GMainLoop and GMainContext to the command reader + thread. + 2006-12-02 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-12-04 05:18:09
|
Update of /cvsroot/openvrml/openvrml/src/openvrml-gtkplug In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3537/src/openvrml-gtkplug Modified Files: main.cpp Log Message: Call g_thread_init to initialize GLib's thread support for openvrml-gtkplug. Create the GMainLoop for the command reader loop in the command reader thread instead of the main thread. Index: main.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/main.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** main.cpp 2 Dec 2006 07:20:21 -0000 1.6 --- main.cpp 4 Dec 2006 05:18:07 -0000 1.7 *************** *** 22,25 **** --- 22,26 ---- # include <sstream> # include <boost/lexical_cast.hpp> + # include <boost/multi_index/detail/scope_guard.hpp> # include <boost/thread/thread.hpp> # include <unistd.h> *************** *** 39,42 **** --- 40,44 ---- using namespace openvrml_player; + using namespace boost::multi_index::detail; // for scope_guard namespace { *************** *** 263,289 **** struct command_channel_loop { ! explicit command_channel_loop(GMainLoop & main_loop): ! main_loop_(&main_loop) {} void operator()() const throw () { GSource * const quit = g_idle_source_new(); ! const GDestroyNotify notify = 0; g_source_set_callback( quit, ::openvrml_player_command_channel_loop_quit_event, ! this->main_loop_, notify); ! guint source_id = ! g_source_attach(quit, ! g_main_loop_get_context(this->main_loop_)); ! g_return_if_fail(source_id != 0); ! g_main_loop_run(this->main_loop_); } private: ! GMainLoop * main_loop_; }; } --- 265,314 ---- struct command_channel_loop { ! command_channel_loop(GIOChannel & command_channel, ! command_istream & command_in): ! command_channel_(&command_channel), ! command_in_(&command_in) {} void operator()() const throw () { + GMainContext * const main_context = g_main_context_new(); + scope_guard main_context_guard = make_guard(g_main_context_unref, + main_context); + GMainLoop * const main_loop = g_main_loop_new(main_context, false); + scope_guard main_loop_guard = make_guard(g_main_loop_unref, + main_loop); + + GSource * const command_watch = + g_io_create_watch(this->command_channel_, + GIOCondition(G_IO_IN | G_IO_HUP)); + scope_guard command_watch_guard = make_guard(g_source_unref, + command_watch); + + static const GDestroyNotify notify = 0; + g_source_set_callback( + command_watch, + reinterpret_cast<GSourceFunc>(::command_data_available), + static_cast<command_streambuf *>(this->command_in_->rdbuf()), notify); + const guint command_watch_id = g_source_attach(command_watch, + main_context); + g_assert(command_watch_id != 0); + GSource * const quit = g_idle_source_new(); ! scope_guard quit_guard = make_guard(g_source_unref, quit); g_source_set_callback( quit, ::openvrml_player_command_channel_loop_quit_event, ! main_loop, notify); ! const guint quit_source_id = g_source_attach(quit, main_context); ! g_assert(quit_source_id != 0); ! g_main_loop_run(main_loop); } private: ! GIOChannel * const command_channel_; ! command_istream * const command_in_; }; } *************** *** 302,305 **** --- 327,332 ---- using namespace openvrml_player; + g_thread_init(0); + g_set_application_name(application_name); *************** *** 355,365 **** thread_group threads; - GMainContext * command_main_context = 0; - GMainLoop * command_main = 0; GIOChannel * command_channel = 0; - GSource * command_watch = 0; - - command_main_context = g_main_context_new(); - command_main = g_main_loop_new(command_main_context, false); command_channel = g_io_channel_unix_new(0); // stdin error = 0; --- 382,386 ---- *************** *** 375,391 **** } - command_watch = g_io_create_watch(command_channel, - GIOCondition(G_IO_IN | G_IO_HUP)); - const GDestroyNotify notify = 0; - g_source_set_callback( - command_watch, - reinterpret_cast<GSourceFunc>(::command_data_available), - static_cast<command_streambuf *>(command_in.rdbuf()), notify); - guint source_id = g_source_attach(command_watch, - command_main_context); - g_return_val_if_fail(source_id != 0, EXIT_FAILURE); - function0<void> command_channel_loop_func = ! command_channel_loop(*command_main); threads.create_thread(command_channel_loop_func); --- 396,401 ---- } function0<void> command_channel_loop_func = ! command_channel_loop(*command_channel, command_in); threads.create_thread(command_channel_loop_func); *************** *** 408,413 **** threads.join_all(); - g_source_unref(command_watch); - status = g_io_channel_shutdown(command_channel, true, &error); if (status != G_IO_STATUS_NORMAL) { --- 418,421 ---- *************** *** 419,425 **** g_io_channel_unref(command_channel); - g_main_loop_unref(command_main); - g_main_context_unref(command_main_context); - if (::request_channel) { GError * error = 0; --- 427,430 ---- |
From: Braden M. <br...@us...> - 2006-12-04 05:18:02
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3178 Modified Files: Tag: OpenVRML-0_16-BRANCH ChangeLog configure.ac Log Message: Call g_thread_init to initialize GLib's thread support for openvrml-gtkplug. Create the GMainLoop for the command reader loop in the command reader thread instead of the main thread. Index: configure.ac =================================================================== RCS file: /cvsroot/openvrml/openvrml/configure.ac,v retrieving revision 1.92.2.9 retrieving revision 1.92.2.10 diff -C2 -d -r1.92.2.9 -r1.92.2.10 *** configure.ac 29 Nov 2006 19:04:36 -0000 1.92.2.9 --- configure.ac 4 Dec 2006 05:17:57 -0000 1.92.2.10 *************** *** 111,115 **** [mozilla_js_pkg=$REQUIRE_MOZILLA_JS], [have_js=no])]) ! PKG_CHECK_MODULES([GTK], [gtk+-2.0], , [have_gtk=no]) AC_PATH_XTRA AX_CHECK_GLU --- 111,115 ---- [mozilla_js_pkg=$REQUIRE_MOZILLA_JS], [have_js=no])]) ! PKG_CHECK_MODULES([GTK], [gtk+-2.0 gthread-2.0], , [have_gtk=no]) AC_PATH_XTRA AX_CHECK_GLU Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1310.2.67 retrieving revision 1.1310.2.68 diff -C2 -d -r1.1310.2.67 -r1.1310.2.68 *** ChangeLog 2 Dec 2006 07:20:06 -0000 1.1310.2.67 --- ChangeLog 4 Dec 2006 05:17:56 -0000 1.1310.2.68 *************** *** 1,2 **** --- 1,23 ---- + 2006-12-04 Braden McDaniel <br...@en...> + + Call g_thread_init to initialize GLib's thread support for + openvrml-gtkplug. Create the GMainLoop for the command reader + loop in the command reader thread instead of the main thread. + + * configure.ac: Incorporate gthread-2.0 flags into GTK_* + variables. + * src/openvrml-gtkplug/main.cpp + (command_channel_loop::command_channel_loop(GIOChannel &, + command_istream &)): Construct with a GIOChannel and a + command_istream. + (command_channel_loop::operator()() const): Create the GMainLoop + and its GMainContext here. + (command_channel_loop::main_loop_): Removed. + (command_channel_loop::command_channel_): Added. + (command_channel_loop::command_in_): Added. + (main(int, char *[])): Call g_thread_init. Moved creation of the + command reader GMainLoop and GMainContext to the command reader + thread. + 2006-12-02 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-12-04 05:18:02
|
Update of /cvsroot/openvrml/openvrml/src/openvrml-gtkplug In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3178/src/openvrml-gtkplug Modified Files: Tag: OpenVRML-0_16-BRANCH main.cpp Log Message: Call g_thread_init to initialize GLib's thread support for openvrml-gtkplug. Create the GMainLoop for the command reader loop in the command reader thread instead of the main thread. Index: main.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/main.cpp,v retrieving revision 1.2.2.5 retrieving revision 1.2.2.6 diff -C2 -d -r1.2.2.5 -r1.2.2.6 *** main.cpp 2 Dec 2006 07:20:07 -0000 1.2.2.5 --- main.cpp 4 Dec 2006 05:17:57 -0000 1.2.2.6 *************** *** 22,25 **** --- 22,26 ---- # include <sstream> # include <boost/lexical_cast.hpp> + # include <boost/multi_index/detail/scope_guard.hpp> # include <boost/thread/thread.hpp> # include <unistd.h> *************** *** 39,42 **** --- 40,44 ---- using namespace openvrml_player; + using namespace boost::multi_index::detail; // for scope_guard namespace { *************** *** 263,289 **** struct command_channel_loop { ! explicit command_channel_loop(GMainLoop & main_loop): ! main_loop_(&main_loop) {} void operator()() const throw () { GSource * const quit = g_idle_source_new(); ! const GDestroyNotify notify = 0; g_source_set_callback( quit, ::openvrml_player_command_channel_loop_quit_event, ! this->main_loop_, notify); ! guint source_id = ! g_source_attach(quit, ! g_main_loop_get_context(this->main_loop_)); ! g_return_if_fail(source_id != 0); ! g_main_loop_run(this->main_loop_); } private: ! GMainLoop * main_loop_; }; } --- 265,314 ---- struct command_channel_loop { ! command_channel_loop(GIOChannel & command_channel, ! command_istream & command_in): ! command_channel_(&command_channel), ! command_in_(&command_in) {} void operator()() const throw () { + GMainContext * const main_context = g_main_context_new(); + scope_guard main_context_guard = make_guard(g_main_context_unref, + main_context); + GMainLoop * const main_loop = g_main_loop_new(main_context, false); + scope_guard main_loop_guard = make_guard(g_main_loop_unref, + main_loop); + + GSource * const command_watch = + g_io_create_watch(this->command_channel_, + GIOCondition(G_IO_IN | G_IO_HUP)); + scope_guard command_watch_guard = make_guard(g_source_unref, + command_watch); + + static const GDestroyNotify notify = 0; + g_source_set_callback( + command_watch, + reinterpret_cast<GSourceFunc>(::command_data_available), + static_cast<command_streambuf *>(this->command_in_->rdbuf()), notify); + const guint command_watch_id = g_source_attach(command_watch, + main_context); + g_assert(command_watch_id != 0); + GSource * const quit = g_idle_source_new(); ! scope_guard quit_guard = make_guard(g_source_unref, quit); g_source_set_callback( quit, ::openvrml_player_command_channel_loop_quit_event, ! main_loop, notify); ! const guint quit_source_id = g_source_attach(quit, main_context); ! g_assert(quit_source_id != 0); ! g_main_loop_run(main_loop); } private: ! GIOChannel * const command_channel_; ! command_istream * const command_in_; }; } *************** *** 302,305 **** --- 327,332 ---- using namespace openvrml_player; + g_thread_init(0); + g_set_application_name(application_name); *************** *** 355,365 **** thread_group threads; - GMainContext * command_main_context = 0; - GMainLoop * command_main = 0; GIOChannel * command_channel = 0; - GSource * command_watch = 0; - - command_main_context = g_main_context_new(); - command_main = g_main_loop_new(command_main_context, false); command_channel = g_io_channel_unix_new(0); // stdin error = 0; --- 382,386 ---- *************** *** 375,391 **** } - command_watch = g_io_create_watch(command_channel, - GIOCondition(G_IO_IN | G_IO_HUP)); - const GDestroyNotify notify = 0; - g_source_set_callback( - command_watch, - reinterpret_cast<GSourceFunc>(::command_data_available), - static_cast<command_streambuf *>(command_in.rdbuf()), notify); - guint source_id = g_source_attach(command_watch, - command_main_context); - g_return_val_if_fail(source_id != 0, EXIT_FAILURE); - function0<void> command_channel_loop_func = ! command_channel_loop(*command_main); threads.create_thread(command_channel_loop_func); --- 396,401 ---- } function0<void> command_channel_loop_func = ! command_channel_loop(*command_channel, command_in); threads.create_thread(command_channel_loop_func); *************** *** 408,413 **** threads.join_all(); - g_source_unref(command_watch); - status = g_io_channel_shutdown(command_channel, true, &error); if (status != G_IO_STATUS_NORMAL) { --- 418,421 ---- *************** *** 419,425 **** g_io_channel_unref(command_channel); - g_main_loop_unref(command_main); - g_main_context_unref(command_main_context); - if (::request_channel) { GError * error = 0; --- 427,430 ---- |
From: Braden M. <br...@us...> - 2006-12-02 07:20:22
|
Update of /cvsroot/openvrml/openvrml/src/openvrml-gtkplug In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18013/src/openvrml-gtkplug Modified Files: gtkvrmlbrowser.cpp main.cpp plugin_streambuf.cpp plugin_streambuf.h Log Message: Mark any uninitialized plugin_streambufs as failed when quitting openvrml-gtkplug so that reader threads will not continue to block on them (creating a deadlock). Index: plugin_streambuf.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/plugin_streambuf.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plugin_streambuf.cpp 1 Oct 2006 05:47:07 -0000 1.2 --- plugin_streambuf.cpp 2 Dec 2006 07:20:21 -0000 1.3 *************** *** 62,65 **** --- 62,68 ---- const std::string & type) { + g_assert(stream_id); + g_assert(!received_url.empty()); + g_assert(!type.empty()); boost::mutex::scoped_lock lock(this->mutex_); bool succeeded = uninitialized_plugin_streambuf_map_.erase(this->url_); *************** *** 72,76 **** .second; g_assert(succeeded); ! this->streambuf_initialized_.notify_all(); } --- 75,89 ---- .second; g_assert(succeeded); ! this->streambuf_initialized_or_failed_.notify_all(); ! } ! ! void openvrml_player::plugin_streambuf::fail() ! { ! boost::mutex::scoped_lock lock(this->mutex_); ! const bool succeeded = ! uninitialized_plugin_streambuf_map_.erase(this->url_); ! g_assert(succeeded); ! this->buf_.set_eof(); ! this->streambuf_initialized_or_failed_.notify_all(); } *************** *** 79,83 **** boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_.wait(lock); } return this->url_; --- 92,96 ---- boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_or_failed_.wait(lock); } return this->url_; *************** *** 88,92 **** boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_.wait(lock); } return this->type_; --- 101,105 ---- boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_or_failed_.wait(lock); } return this->type_; *************** *** 108,112 **** boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_.wait(lock); } --- 121,125 ---- boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_or_failed_.wait(lock); } *************** *** 176,179 **** --- 189,198 ---- } + bool openvrml_player::uninitialized_plugin_streambuf_map::empty() const + { + boost::mutex::scoped_lock lock(this->mutex_); + return this->map_.empty(); + } + const boost::shared_ptr<openvrml_player::plugin_streambuf> openvrml_player::uninitialized_plugin_streambuf_map::front() const Index: main.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/main.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** main.cpp 30 Nov 2006 06:47:43 -0000 1.5 --- main.cpp 2 Dec 2006 07:20:21 -0000 1.6 *************** *** 145,148 **** --- 145,158 ---- // Got EOF from the command stream. Time to shut down. // + // First, mark any outstanding uninitialized streams as failed so + // that another thread doesn't block waiting for them. + // + while (!uninitialized_plugin_streambuf_map_.empty()) { + uninitialized_plugin_streambuf_map_.front()->fail(); + } + + // + // Set the quit flag. + // ::quit_flag.value(true); Index: gtkvrmlbrowser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/gtkvrmlbrowser.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gtkvrmlbrowser.cpp 22 Nov 2006 00:05:19 -0000 1.3 --- gtkvrmlbrowser.cpp 2 Dec 2006 07:20:21 -0000 1.4 *************** *** 484,489 **** class plugin_resource_istream : public openvrml::resource_istream { ! boost::shared_ptr<plugin_streambuf> streambuf_; ! GIOChannel * request_channel_; public: --- 484,489 ---- class plugin_resource_istream : public openvrml::resource_istream { ! const boost::shared_ptr<plugin_streambuf> streambuf_; ! GIOChannel * const request_channel_; public: *************** *** 512,516 **** // ! // This blocks until we know the result of NPN_GetURL. // const int get_url_result = this->streambuf_->get_url_result(); --- 512,516 ---- // ! // This blocks until we receive a get-url-result command. // const int get_url_result = this->streambuf_->get_url_result(); Index: plugin_streambuf.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/plugin_streambuf.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plugin_streambuf.h 1 Oct 2006 05:47:07 -0000 1.2 --- plugin_streambuf.h 2 Dec 2006 07:20:21 -0000 1.3 *************** *** 43,47 **** mutable boost::condition received_get_url_result_; bool initialized_; ! mutable boost::condition streambuf_initialized_; std::string url_; std::string type_; --- 43,47 ---- mutable boost::condition received_get_url_result_; bool initialized_; ! mutable boost::condition streambuf_initialized_or_failed_; std::string url_; std::string type_; *************** *** 60,63 **** --- 60,64 ---- const std::string & received_url, const std::string & type); + void fail(); const std::string & url() const; const std::string & type() const; *************** *** 78,81 **** --- 79,83 ---- bool erase(const std::string & url); size_t size() const; + bool empty() const; const boost::shared_ptr<plugin_streambuf> front() const; } uninitialized_plugin_streambuf_map_; |
From: Braden M. <br...@us...> - 2006-12-02 07:20:22
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18013 Modified Files: ChangeLog Log Message: Mark any uninitialized plugin_streambufs as failed when quitting openvrml-gtkplug so that reader threads will not continue to block on them (creating a deadlock). Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1389 retrieving revision 1.1390 diff -C2 -d -r1.1389 -r1.1390 *** ChangeLog 30 Nov 2006 06:47:42 -0000 1.1389 --- ChangeLog 2 Dec 2006 07:20:20 -0000 1.1390 *************** *** 1,2 **** --- 1,36 ---- + 2006-12-02 Braden McDaniel <br...@en...> + + Mark any uninitialized plugin_streambufs as failed when quitting + openvrml-gtkplug so that reader threads will not continue to block + on them (creating a deadlock). + + * src/openvrml-gtkplug/gtkvrmlbrowser.cpp + (resource_fetcher::do_get_resource(const std::string &)): Fixed + comment to be more host-agnostic (i.e., removed reference to + NPN_GetURL). + * src/openvrml-gtkplug/main.cpp + (openvrml_player::command_istream_reader::operator()() const): + Mark any remaining uninitialized plugin_streambufs as failed. + * src/openvrml-gtkplug/plugin_streambuf.cpp + (openvrml_player::plugin_streambuf::init(size_t, const + std::string&, const std::string &)): Assert validity of arguments; + changed name of condition variable. + (openvrml_player::plugin_streambuf::fail()): Added function; used + to indicate that a stream will not be initialized. + (openvrml_player::plugin_streambuf::url() const): Changed name of + condition variable. + (openvrml_player::plugin_streambuf::type() const): Changed name of + condition variable. + (openvrml_player::plugin_streambuf::underflow()): Changed name of + condition variable. + (openvrml_player::uninitialized_plugin_streambuf_map::empty() + const): Added function. + * src/openvrml-gtkplug/plugin_streambuf.h + (openvrml_player::plugin_streambuf): Changed + streambuf_initialized_ condition variable to + streambuf_initialized_or_failed_; added fail member function. + (openvrml_player::uninitialized_plugin_streambuf_map): Added empty + member function. + 2006-11-30 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-12-02 07:20:11
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv17920 Modified Files: Tag: OpenVRML-0_16-BRANCH ChangeLog Log Message: Mark any uninitialized plugin_streambufs as failed when quitting openvrml-gtkplug so that reader threads will not continue to block on them (creating a deadlock). Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1310.2.66 retrieving revision 1.1310.2.67 diff -C2 -d -r1.1310.2.66 -r1.1310.2.67 *** ChangeLog 30 Nov 2006 06:47:31 -0000 1.1310.2.66 --- ChangeLog 2 Dec 2006 07:20:06 -0000 1.1310.2.67 *************** *** 1,2 **** --- 1,35 ---- + 2006-12-02 Braden McDaniel <br...@en...> + + Mark any uninitialized plugin_streambufs as failed when quitting + openvrml-gtkplug so that reader threads will not continue to block + on them (creating a deadlock). + + * src/openvrml-gtkplug/gtkvrmlbrowser.cpp + (browser::do_get_resource(const std::string &)): Fixed comment to + be more host-agnostic (i.e., removed reference to NPN_GetURL). + * src/openvrml-gtkplug/main.cpp + (openvrml_player::command_istream_reader::operator()() const): + Mark any remaining uninitialized plugin_streambufs as failed. + * src/openvrml-gtkplug/plugin_streambuf.cpp + (openvrml_player::plugin_streambuf::init(size_t, const + std::string&, const std::string &)): Assert validity of arguments; + changed name of condition variable. + (openvrml_player::plugin_streambuf::fail()): Added function; used + to indicate that a stream will not be initialized. + (openvrml_player::plugin_streambuf::url() const): Changed name of + condition variable. + (openvrml_player::plugin_streambuf::type() const): Changed name of + condition variable. + (openvrml_player::plugin_streambuf::underflow()): Changed name of + condition variable. + (openvrml_player::uninitialized_plugin_streambuf_map::empty() + const): Added function. + * src/openvrml-gtkplug/plugin_streambuf.h + (openvrml_player::plugin_streambuf): Changed + streambuf_initialized_ condition variable to + streambuf_initialized_or_failed_; added fail member function. + (openvrml_player::uninitialized_plugin_streambuf_map): Added empty + member function. + 2006-11-30 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2006-12-02 07:20:11
|
Update of /cvsroot/openvrml/openvrml/src/openvrml-gtkplug In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv17920/src/openvrml-gtkplug Modified Files: Tag: OpenVRML-0_16-BRANCH gtkvrmlbrowser.cpp main.cpp plugin_streambuf.cpp plugin_streambuf.h Log Message: Mark any uninitialized plugin_streambufs as failed when quitting openvrml-gtkplug so that reader threads will not continue to block on them (creating a deadlock). Index: plugin_streambuf.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/plugin_streambuf.cpp,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** plugin_streambuf.cpp 1 Oct 2006 05:48:30 -0000 1.2.2.1 --- plugin_streambuf.cpp 2 Dec 2006 07:20:07 -0000 1.2.2.2 *************** *** 62,65 **** --- 62,68 ---- const std::string & type) { + g_assert(stream_id); + g_assert(!received_url.empty()); + g_assert(!type.empty()); boost::mutex::scoped_lock lock(this->mutex_); bool succeeded = uninitialized_plugin_streambuf_map_.erase(this->url_); *************** *** 72,76 **** .second; g_assert(succeeded); ! this->streambuf_initialized_.notify_all(); } --- 75,89 ---- .second; g_assert(succeeded); ! this->streambuf_initialized_or_failed_.notify_all(); ! } ! ! void openvrml_player::plugin_streambuf::fail() ! { ! boost::mutex::scoped_lock lock(this->mutex_); ! const bool succeeded = ! uninitialized_plugin_streambuf_map_.erase(this->url_); ! g_assert(succeeded); ! this->buf_.set_eof(); ! this->streambuf_initialized_or_failed_.notify_all(); } *************** *** 79,83 **** boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_.wait(lock); } return this->url_; --- 92,96 ---- boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_or_failed_.wait(lock); } return this->url_; *************** *** 88,92 **** boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_.wait(lock); } return this->type_; --- 101,105 ---- boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_or_failed_.wait(lock); } return this->type_; *************** *** 108,112 **** boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_.wait(lock); } --- 121,125 ---- boost::mutex::scoped_lock lock(this->mutex_); while (!this->initialized_) { ! this->streambuf_initialized_or_failed_.wait(lock); } *************** *** 176,179 **** --- 189,198 ---- } + bool openvrml_player::uninitialized_plugin_streambuf_map::empty() const + { + boost::mutex::scoped_lock lock(this->mutex_); + return this->map_.empty(); + } + const boost::shared_ptr<openvrml_player::plugin_streambuf> openvrml_player::uninitialized_plugin_streambuf_map::front() const Index: main.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/main.cpp,v retrieving revision 1.2.2.4 retrieving revision 1.2.2.5 diff -C2 -d -r1.2.2.4 -r1.2.2.5 *** main.cpp 30 Nov 2006 06:47:32 -0000 1.2.2.4 --- main.cpp 2 Dec 2006 07:20:07 -0000 1.2.2.5 *************** *** 145,148 **** --- 145,158 ---- // Got EOF from the command stream. Time to shut down. // + // First, mark any outstanding uninitialized streams as failed so + // that another thread doesn't block waiting for them. + // + while (!uninitialized_plugin_streambuf_map_.empty()) { + uninitialized_plugin_streambuf_map_.front()->fail(); + } + + // + // Set the quit flag. + // ::quit_flag.value(true); Index: gtkvrmlbrowser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/gtkvrmlbrowser.cpp,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** gtkvrmlbrowser.cpp 1 Oct 2006 05:48:30 -0000 1.2.2.1 --- gtkvrmlbrowser.cpp 2 Dec 2006 07:20:07 -0000 1.2.2.2 *************** *** 484,489 **** class plugin_resource_istream : public openvrml::resource_istream { ! boost::shared_ptr<plugin_streambuf> streambuf_; ! GIOChannel * request_channel_; public: --- 484,489 ---- class plugin_resource_istream : public openvrml::resource_istream { ! const boost::shared_ptr<plugin_streambuf> streambuf_; ! GIOChannel * const request_channel_; public: *************** *** 512,516 **** // ! // This blocks until we know the result of NPN_GetURL. // const int get_url_result = this->streambuf_->get_url_result(); --- 512,516 ---- // ! // This blocks until we receive a get-url-result command. // const int get_url_result = this->streambuf_->get_url_result(); Index: plugin_streambuf.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/openvrml-gtkplug/plugin_streambuf.h,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** plugin_streambuf.h 1 Oct 2006 05:48:30 -0000 1.2.2.1 --- plugin_streambuf.h 2 Dec 2006 07:20:07 -0000 1.2.2.2 *************** *** 43,47 **** mutable boost::condition received_get_url_result_; bool initialized_; ! mutable boost::condition streambuf_initialized_; std::string url_; std::string type_; --- 43,47 ---- mutable boost::condition received_get_url_result_; bool initialized_; ! mutable boost::condition streambuf_initialized_or_failed_; std::string url_; std::string type_; *************** *** 60,63 **** --- 60,64 ---- const std::string & received_url, const std::string & type); + void fail(); const std::string & url() const; const std::string & type() const; *************** *** 78,81 **** --- 79,83 ---- bool erase(const std::string & url); size_t size() const; + bool empty() const; const boost::shared_ptr<plugin_streambuf> front() const; } uninitialized_plugin_streambuf_map_; |
From: Braden M. <br...@us...> - 2006-11-30 23:35:11
|
Update of /cvsroot/openvrml/htdocs/screenshots In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv29154/screenshots Modified Files: index.html Log Message: Added X3D keywords to meta tags. Index: index.html =================================================================== RCS file: /cvsroot/openvrml/htdocs/screenshots/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** index.html 3 Oct 2003 13:18:11 -0000 1.4 --- index.html 30 Nov 2006 23:35:09 -0000 1.5 *************** *** 4,9 **** <head> <title>OpenVRML - Screen shots</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, open source, LGPL, GNU, copyleft"> <link rel="start" href="../index"> <link rel="prev" href="../download"> --- 4,9 ---- <head> <title>OpenVRML - Screen shots</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML and X3D"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, X3D, Extensible 3D, open source, LGPL, GNU, copyleft"> <link rel="start" href="../index"> <link rel="prev" href="../download"> |
From: Braden M. <br...@us...> - 2006-11-30 23:35:10
|
Update of /cvsroot/openvrml/htdocs In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv29154 Modified Files: discussion.html download.html index.php Log Message: Added X3D keywords to meta tags. Index: download.html =================================================================== RCS file: /cvsroot/openvrml/htdocs/download.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** download.html 30 Nov 2006 21:21:27 -0000 1.5 --- download.html 30 Nov 2006 23:35:09 -0000 1.6 *************** *** 4,9 **** <head> <title>OpenVRML - Download</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, open source, LGPL, GNU, copyleft"> <link rel="start" href="index"> <link rel="prev" href="index"> --- 4,9 ---- <head> <title>OpenVRML - Download</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML and X3D"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, X3D, Extensible 3D, open source, LGPL, GNU, copyleft"> <link rel="start" href="index"> <link rel="prev" href="index"> Index: discussion.html =================================================================== RCS file: /cvsroot/openvrml/htdocs/discussion.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** discussion.html 3 Oct 2003 13:18:05 -0000 1.4 --- discussion.html 30 Nov 2006 23:35:09 -0000 1.5 *************** *** 4,9 **** <head> <title>OpenVRML - Discussion</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, open source, LGPL, GNU, copyleft"> <link rel="start" href="index"> <link rel="prev" href="screenshots/index"> --- 4,9 ---- <head> <title>OpenVRML - Discussion</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML and X3D"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, X3D, Extensible 3D, open source, LGPL, GNU, copyleft"> <link rel="start" href="index"> <link rel="prev" href="screenshots/index"> Index: index.php =================================================================== RCS file: /cvsroot/openvrml/htdocs/index.php,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** index.php 30 Nov 2006 18:00:06 -0000 1.32 --- index.php 30 Nov 2006 23:35:09 -0000 1.33 *************** *** 5,10 **** <head> <title>OpenVRML</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, open source, LGPL, GNU, copyleft"> <link rel="next" href="download"> <link rel="stylesheet" media="nn4dummy, screen" href="openvrml.css"> --- 5,10 ---- <head> <title>OpenVRML</title> ! <meta name="description" content="OpenVRML library for reading, viewing, and writing VRML and X3D"> ! <meta name="keywords" content="OpenVRML, LibVRML97, VRML, VRML97, virtual reality, Virtual Reality Modeling Language, X3D, Extensible 3D, open source, LGPL, GNU, copyleft"> <link rel="next" href="download"> <link rel="stylesheet" media="nn4dummy, screen" href="openvrml.css"> |
From: Braden M. <br...@us...> - 2006-11-30 21:21:35
|
Update of /cvsroot/openvrml/htdocs In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6802 Modified Files: download.html Log Message: Note binary distributions for Fedora Linux and Mac OS X. Index: download.html =================================================================== RCS file: /cvsroot/openvrml/htdocs/download.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** download.html 28 Sep 2006 00:21:15 -0000 1.4 --- download.html 30 Nov 2006 21:21:27 -0000 1.5 *************** *** 26,31 **** </table> <div class="body"> ! <h2><a href="http://sourceforge.net/project/showfiles.php?group_id=7151" title="OpenVRML Project Filelist">Get OpenVRML</a></h2> ! <p>OpenVRML can be downloaded from <a href="http://sourceforge.net/project/showfiles.php?group_id=7151" title="OpenVRML Project Filelist">SourceForge</a>. </div> <address class="footer"><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=7151&type=3" width="125" height="37" border="0" alt="SourceForge.net Logo" align="right"></a><a href="mailto:br...@us...">Contact Webmaster</a></address> --- 26,36 ---- </table> <div class="body"> ! <h2>Source distribution</h2> ! <p>The source distribution can be downloaded from <a href="http://sourceforge.net/project/showfiles.php?group_id=7151" title="OpenVRML Project Filelist">SourceForge</a>.</p> ! <h2>Binary distributions</h2> ! <h3>Fedora Linux</h3> ! <p>OpenVRML is available in <a href="http://fedoraproject.org/wiki/Extras">Fedora Extras</a>.</p> ! <h3>Mac OS X</h3> ! <p>OpenVRML is available as part of <a href="http://fink.sourceforge.net">Fink</a>.</p> </div> <address class="footer"><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=7151&type=3" width="125" height="37" border="0" alt="SourceForge.net Logo" align="right"></a><a href="mailto:br...@us...">Contact Webmaster</a></address> |
From: Braden M. <br...@us...> - 2006-11-30 18:00:16
|
Update of /cvsroot/openvrml/htdocs In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22842 Modified Files: index.php Log Message: Applied <acronym> to first occurrence of "X3D". Index: index.php =================================================================== RCS file: /cvsroot/openvrml/htdocs/index.php,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** index.php 30 Nov 2006 17:31:35 -0000 1.31 --- index.php 30 Nov 2006 18:00:06 -0000 1.32 *************** *** 58,62 **** <div class="body"> <h1><img src="logo" width="380" height="72" alt="OpenVRML"></h1> ! <p>OpenVRML is a <a href="http://www.gnu.org/philosophy/free-sw.html" title="What is Free Software?">free</a> cross-platform runtime for <a href="http://web3d.org/technicalinfo/specifications/vrml97/index.htm"><acronym title="Virtual Reality Modeling Language">VRML</acronym></a> and <a href="http://web3d.org/about/overview/" title="What is X3D?">X3D</a> available under the <a href="http://www.gnu.org/copyleft/lesser.html">GNU Lesser General Public License</a>. The OpenVRML distribution includes libraries you can use to add VRML/X3D support to an application. On platforms where <a href="http://gtk.org" title="GTK+ - The GIMP Toolkit">GTK+</a> is available, OpenVRML also provides a plug-in to render VRML/X3D worlds in Web browsers.</p> <hr> <table class="sfdata"> --- 58,62 ---- <div class="body"> <h1><img src="logo" width="380" height="72" alt="OpenVRML"></h1> ! <p>OpenVRML is a <a href="http://www.gnu.org/philosophy/free-sw.html" title="What is Free Software?">free</a> cross-platform runtime for <a href="http://web3d.org/technicalinfo/specifications/vrml97/index.htm"><acronym title="Virtual Reality Modeling Language">VRML</acronym></a> and <a href="http://web3d.org/about/overview/" title="What is X3D?"><acronym title="Extensible 3D">X3D</acronym></a> available under the <a href="http://www.gnu.org/copyleft/lesser.html">GNU Lesser General Public License</a>. The OpenVRML distribution includes libraries you can use to add VRML/X3D support to an application. On platforms where <a href="http://gtk.org" title="GTK+ - The GIMP Toolkit">GTK+</a> is available, OpenVRML also provides a plug-in to render VRML/X3D worlds in Web browsers.</p> <hr> <table class="sfdata"> |