\r
struct server::impl : boost::noncopyable\r
{\r
- monitor::subject event_subject_;\r
+ monitor::basic_subject event_subject_;\r
accelerator::accelerator accelerator_;\r
std::vector<spl::shared_ptr<IO::AsyncEventServer>> async_servers_; \r
std::vector<spl::shared_ptr<video_channel>> channels_;\r
\r
~impl()\r
{ \r
- image::uninit();\r
- ffmpeg::uninit();\r
-\r
async_servers_.clear();\r
channels_.clear();\r
+\r
+ Sleep(500); // HACK: Wait for asynchronous destruction of producers and consumers.\r
+\r
+ image::uninit();\r
+ ffmpeg::uninit();\r
}\r
\r
void setup_channels(const boost::property_tree::wptree& pt)\r
\r
server::server() : impl_(new impl()){}\r
\r
-const std::vector<spl::shared_ptr<video_channel>> server::get_channels() const\r
+const std::vector<spl::shared_ptr<video_channel>> server::channels() const\r
{\r
return impl_->channels_;\r
}\r