From 4eab3ca9bf020df2bb53fa2a36aa4f57d684225c Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期三, 07 八月 2019 17:25:03 +0800 Subject: [PATCH] add rec notify, try catch --- csrc/wrapper.cpp | 33 ++++++++++------ csrc/buz/recorder.cpp | 35 +++++++---------- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/csrc/buz/recorder.cpp b/csrc/buz/recorder.cpp index eee5332..1dd71ab 100644 --- a/csrc/buz/recorder.cpp +++ b/csrc/buz/recorder.cpp @@ -37,28 +37,21 @@ } Recorder::~Recorder(){ - // if (out_){ - // stop_recorder_.store(true); - // cv_.notify_one(); - // int try_cnt = 0; - // while(stop_recorder_.load()){ - // logIt("REC WAIT TO QUIT ID %s", id_.c_str()); - // if (try_cnt > 100){ - // logIt("REC TRY %d TIMES TO QUIT..., BREAK!!!", try_cnt); - // break; - // } - // try_cnt++; - // sleep(1); - // } - // }else if (stop_recorder_.load()){ - // logIt("REC NORMAL QUIT"); - // } - if (thrd_){ - stop_recorder_.store(true); - thrd_->join(); - logIt("REC THREAD JOINED, QUIT!!!"); + try + { + if (thrd_){ + stop_recorder_.store(true); + cv_.notify_one(); + thrd_->join(); + logIt("REC THREAD JOINED, QUIT!!!"); + } } + catch(const std::exception& e) + { + logIt("RECODER DESTRUCTOR EXCEPTION: ", e.what()); + } + } int Recorder::init_writer(){ @@ -278,4 +271,4 @@ } } } -} \ No newline at end of file +} diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp index 1ebda9d..3bf1b57 100644 --- a/csrc/wrapper.cpp +++ b/csrc/wrapper.cpp @@ -48,20 +48,29 @@ Wrapper::~Wrapper() { - if(thread_){ - stop_stream_.store(true); - thread_->join(); - } - if(bridge_){ - delete bridge_; bridge_ = NULL; - } - - map_rec_.clear(); - list_rec_pkt_.clear(); + try + { + if(thread_){ + stop_stream_.store(true); + thread_->join(); + } + if(bridge_){ + delete bridge_; bridge_ = NULL; + } - for(auto &i : list_pic_){ - free(i.data); + map_rec_.clear(); + list_rec_pkt_.clear(); + + for(auto &i : list_pic_){ + free(i.data); + } } + catch(const std::exception& e) + { + logIt("WRAPPER EXCEPTION: ", e.what()); + } + + } void Wrapper::ScalePicture(const int w, const int h, const int flags){ -- Gitblit v1.8.0