const CDebugSystemObjects::CThread CDebugSystemObjects::GetThreadBySystemId(ULONG systemId) const { ULONG engineId; Check(m_intf->GetThreadIdBySystemId(systemId, &engineId)); return CThread(this, engineId, systemId); }
const CDebugSystemObjects::CThread CDebugSystemObjects::GetThreadByEngineId(ULONG engineId) const { ULONG number = 0; Check(m_intf->GetNumberThreads(&number)); std::vector<ULONG> engIds(number), sysIds(number); Check(m_intf->GetThreadIdsByIndex(0, number, &engIds[0], &sysIds[0])); for (ULONG i=0; i<number; i++) if (engIds[i] == engineId) return CThread(this, engIds[i], sysIds[i]); RaiseException("The thread engine id is not exists.", PyExc_IndexError); }
const list CDebugSystemObjects::GetThreads(void) const { ULONG number = 0; Check(m_intf->GetNumberThreads(&number)); std::vector<ULONG> engIds(number), sysIds(number); Check(m_intf->GetThreadIdsByIndex(0, number, &engIds[0], &sysIds[0])); list threads; for (ULONG i=0; i<number; i++) { threads.append(CThread(this, engIds[i], sysIds[i])); } return threads; }
/*==========================================================================*/ MODULE::IMPORT/*============================================================*/ /*==========================================================================*/ #include "../main.c" /*==========================================================================*/ MODULE::INTERFACE/*=========================================================*/ /*==========================================================================*/ /*==========================================================================*/ MODULE::IMPLEMENTATION/*====================================================*/ /*==========================================================================*/ #define NO_GTK FALSE #include "../../syncobject.c" #include <gtk/gtk.h> #if !FRAMEWORK_NOMAIN && OS_Linux Local gint CFramework__LINUX_timeout(gpointer data) { CThread(CFramework(&framework).thread_this()).sleep(0); return TRUE; }/*CFramework__LINUX_timeout*/
CThread CThread::getCurrentThread() { return CThread(ARCH->newCurrentThread()); }