~bts_server_process_info() { server_process->kill(); if (stdout_reader_done.valid() && !stdout_reader_done.ready()) stdout_reader_done.wait(); if (stderr_reader_done.valid() && !stderr_reader_done.ready()) stderr_reader_done.wait(); }
~impl() { try { tcp_serv.close(); if( accept_complete.valid() ) accept_complete.wait(); }catch(...){} }
~client() { try { if( chain_connect_loop_complete.valid() ) { try { _chain_con.close(); chain_connect_loop_complete.cancel(); chain_connect_loop_complete.wait(); } catch( fc::exception& e ) { wlog( "unhandled exception thrown in destructor.\n${e}", ("e", e.to_detail_string() ) ); } } _tcp_serv.close(); if( _accept_loop_complete.valid() ) { _accept_loop_complete.cancel(); _accept_loop_complete.wait(); } } catch ( const fc::canceled_exception& ){} catch ( const fc::exception& e ) { wlog( "unhandled exception thrown in destructor.\n${e}", ("e", e.to_detail_string() ) ); } }