* Fixed a race condition where the releasing of the global lock before calling polling would cause problems. Now a thread that acquires the global lock and wants to remove or change fd's from the main thread.

git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1182 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2010-10-22 11:31:11 +00:00
parent 0e69677dbc
commit b8d319a2fc
9 changed files with 34 additions and 5 deletions
+10
View File
@@ -196,3 +196,13 @@ ThreadBase::queue_item(thread_base_func newFunc) {
if (m_state == STATE_ACTIVE)
pthread_kill(m_thread, SIGUSR1);
}
void
ThreadBase::interrupt_main_polling() {
do {
if (!ThreadBase::is_main_polling())
return;
pthread_kill(main_thread->m_thread, SIGUSR1);
} while (1);
}