libtorrent seems to sometimes hang when exiting baretorrent. Pausing the debugger gives the following stack traces:
ntdll.dll!NtWaitForMultipleObjects() Unknown
KernelBase.dll!WaitForMultipleObjectsEx() Unknown
kernel32.dll!WaitForMultipleObjects() Unknown
baretorrent_d.dll!boost::asio::detail::win_thread::join() Line 45 C++
baretorrent_d.dll!libtorrent::aux::session_impl::~session_impl() Line 5586 C++
baretorrent_d.dll!libtorrent::aux::session_impl::`scalar deleting destructor'(unsigned int) C++
baretorrent_d.dll!boost::checked_delete<libtorrent::aux::session_impl>(libtorrent::aux::session_impl * x=0x000000000323f840) Line 34 C++
baretorrent_d.dll!boost::detail::sp_counted_impl_p<libtorrent::aux::session_impl>::dispose() Line 79 C++
baretorrent_d.dll!boost::detail::sp_counted_base::release() Line 103 C++
baretorrent_d.dll!boost::detail::shared_count::~shared_count() Line 309 C++
baretorrent_d.dll!boost::shared_ptr<libtorrent::aux::session_impl>::~shared_ptr<libtorrent::aux::session_impl>() C++
baretorrent_d.dll!libtorrent::session::~session() Line 433 C++
baretorrent_d.dll!baretorrent::manager::~manager() Line 71 C++
baretorrent_d.dll!baretorrent::start(int argc=2, char * * argv=0x000000000022df90) Line 894 C++
baretorrent_d.exe!main(int argc=2, char * * argv=0x000000000022df90) Line 28 C++
baretorrent_d.exe!__tmainCRTStartup() Line 536 C
baretorrent_d.exe!mainCRTStartup() Line 377 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
ntdll.dll!NtWaitForSingleObject() Unknown
KernelBase.dll!WaitForSingleObjectEx() Unknown
baretorrent_d.dll!boost::asio::detail::win_iocp_io_service::timer_thread_function::operator()() Line 53 C++
baretorrent_d.dll!boost::asio::detail::win_thread::func<boost::asio::detail::win_iocp_io_service::timer_thread_function>::run() Line 117 C++
baretorrent_d.dll!boost::asio::detail::win_thread_function(void * arg=0x0000000003246680) Line 118 C++
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd=0x00000000032486b0) Line 337 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
ntdll.dll!NtRemoveIoCompletion() Unknown
KernelBase.dll!GetQueuedCompletionStatus() Unknown
kernel32.dll!GetQueuedCompletionStatusStub() Unknown
baretorrent_d.dll!boost::asio::detail::win_iocp_io_service::do_one(bool block=true, boost::system::error_code & ec={...}) Line 359 C++
baretorrent_d.dll!boost::asio::detail::win_iocp_io_service::run(boost::system::error_code & ec={...}) Line 159 C++
baretorrent_d.dll!boost::asio::io_service::run(boost::system::error_code & ec={...}) Line 67 C++
baretorrent_d.dll!libtorrent::aux::session_impl::main_thread() Line 4713 C++
baretorrent_d.dll!boost::_mfi::mf0<void,libtorrent::aux::session_impl>::operator()(libtorrent::aux::session_impl * p=0x000000000323f840) Line 50 C++
baretorrent_d.dll!boost::_bi::list1<boost::_bi::value<libtorrent::aux::session_impl * __ptr64> >::operator()<boost::_mfi::mf0<void,libtorrent::aux::session_impl>,boost::_bi::list0>(boost::_bi::type<void> __formal={...}, boost::_mfi::mf0<void,libtorrent::aux::session_impl> & f={...}, boost::_bi::list0 & a={...}, int __formal=0) Line 254 C++
baretorrent_d.dll!boost::_bi::bind_t<void,boost::_mfi::mf0<void,libtorrent::aux::session_impl>,boost::_bi::list1<boost::_bi::value<libtorrent::aux::session_impl * __ptr64> > >::operator()() Line 21 C++
baretorrent_d.dll!boost::asio::detail::win_thread::func<boost::_bi::bind_t<void,boost::_mfi::mf0<void,libtorrent::aux::session_impl>,boost::_bi::list1<boost::_bi::value<libtorrent::aux::session_impl * __ptr64> > > >::run() Line 117 C++
baretorrent_d.dll!boost::asio::detail::win_thread_function(void * arg=0x000000000324c6e0) Line 118 C++
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd=0x000000000324d4b0) Line 337 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
ntdll.dll!NtRemoveIoCompletion() Unknown
KernelBase.dll!GetQueuedCompletionStatus() Unknown
kernel32.dll!GetQueuedCompletionStatusStub() Unknown
baretorrent_d.dll!boost::asio::detail::win_iocp_io_service::do_one(bool block=true, boost::system::error_code & ec={...}) Line 359 C++
baretorrent_d.dll!boost::asio::detail::win_iocp_io_service::run(boost::system::error_code & ec={...}) Line 159 C++
baretorrent_d.dll!boost::asio::io_service::run() Line 59 C++
baretorrent_d.dll!boost::asio::detail::resolver_service_base::work_io_service_runner::operator()() Line 32 C++
baretorrent_d.dll!boost::asio::detail::win_thread::func<boost::asio::detail::resolver_service_base::work_io_service_runner>::run() Line 117 C++
baretorrent_d.dll!boost::asio::detail::win_thread_function(void * arg=0x000000000327fff0) Line 118 C++
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd=0x0000000003284ec0) Line 337 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
ntdll.dll!NtWaitForSingleObject() Unknown
mswsock.dll!__GSHandlerCheck_SEH() Unknown
mswsock.dll!__GSHandlerCheck_SEH() Unknown
ws2_32.dll!DPROVIDER::WSPSelect(int,struct fd_set *,struct fd_set *,struct fd_set *,struct timeval const *,int *) Unknown
ws2_32.dll!select() Unknown
baretorrent_d.dll!boost::asio::detail::socket_ops::select(int nfds=0, fd_set * readfds=0x0000000003146320, fd_set * writefds=0x0000000003148390, fd_set * exceptfds=0x000000000314a400, timeval * timeout=0x00000000044df740, boost::system::error_code & ec={...}) Line 1684 C++
baretorrent_d.dll!boost::asio::detail::select_reactor::run(bool block=true, boost::asio::detail::op_queue<boost::asio::detail::win_iocp_operation> & ops={...}) Line 213 C++
baretorrent_d.dll!boost::asio::detail::select_reactor::run_thread() Line 257 C++
baretorrent_d.dll!boost::asio::detail::select_reactor::call_run_thread(boost::asio::detail::select_reactor * reactor=0x0000000003145340) Line 265 C++
baretorrent_d.dll!boost::asio::detail::binder1<void (__cdecl*)(boost::asio::detail::select_reactor * __ptr64),boost::asio::detail::select_reactor * __ptr64>::operator()() Line 47 C++
baretorrent_d.dll!boost::asio::detail::win_thread::func<boost::asio::detail::binder1<void (__cdecl*)(boost::asio::detail::select_reactor * __ptr64),boost::asio::detail::select_reactor * __ptr64> >::run() Line 117 C++
baretorrent_d.dll!boost::asio::detail::win_thread_function(void * arg=0x000000000314c4f0) Line 118 C++
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd=0x000000000314d430) Line 337 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown