DPTR(PTR_Thread) m_idToThread; // map thread ids to threads
DWORD m_idToThreadCapacity; // capacity of the map
+#ifndef DACCESS_COMPILE
void GrowIdToThread()
{
CONTRACTL
}
CONTRACTL_END;
-#ifndef DACCESS_COMPILE
DWORD newCapacity = m_idToThreadCapacity == 0 ? 16 : m_idToThreadCapacity*2;
Thread **newIdToThread = new Thread*[newCapacity];
delete[] m_idToThread;
m_idToThread = newIdToThread;
m_idToThreadCapacity = newCapacity;
-#else
- DacNotImpl();
-#endif // !DACCESS_COMPILE
-
}
+#endif // !DACCESS_COMPILE
public:
IdDispenser() :
return (id > 0) && (id <= m_highestId);
}
+#ifndef DACCESS_COMPILE
void NewId(Thread *pThread, DWORD & newId)
{
-#ifndef DACCESS_COMPILE
WRAPPER_NO_CONTRACT;
DWORD result;
CrstHolder ch(&m_Crst);
newId = result;
if (result < m_idToThreadCapacity)
m_idToThread[result] = pThread;
-
-#else
- DacNotImpl();
-#endif // !DACCESS_COMPILE
}
+#endif // !DACCESS_COMPILE
+#ifndef DACCESS_COMPILE
void DisposeId(DWORD id)
{
-#ifndef DACCESS_COMPILE
CONTRACTL
{
NOTHROW;
}
#endif
}
-#else
- DacNotImpl();
-#endif // !DACCESS_COMPILE
}
+#endif // !DACCESS_COMPILE
Thread *IdToThread(DWORD id)
{