#pragma once

struct BSThread
{
public:
    virtual ~BSThread() = 0;
    // runner
    virtual uint32_t ThreadProc() = 0;
    // probably release
    virtual bool Release() = 0;

    // private:
    CRITICAL_SECTION lock; // in reality a BSCriticalSection
    void* m_ThreadHandle;
    void* m_ParentHandle;
    uint32_t m_ThreadID;
    uint32_t m_ParentID;
    bool bThreadIsActive;
};
static_assert(sizeof(BSThread) == 0x50, "BSThread size mismatch");
