void destroy( implementation_type & impl) { error_code ec; cancel(impl, ec); impl.reset(); }
void destroy(implementation_type &impl) { boost::unique_lock<boost::mutex> lock(work_thread_mutex_); typename std::vector<implementation_type>::iterator it = std::find(impls_.begin(), impls_.end(), impl); if (it != impls_.end()) impls_.erase(it); #if defined(BOOST_WINDOWS_API) interrupt_work_thread(); work_thread_cond_.wait(work_thread_mutex_); impl->clear(handles_); work_thread_cond_.notify_all(); #endif impl.reset(); }
void destroy ( implementation_type &impl ) { impl->destroy(); impl.reset(); }
void construct ( implementation_type &impl ) { impl.reset(new DnsResolverImplementation(this->get_io_service())); }
void construct( implementation_type & impl) { impl.reset(new ResolveTask); }