#ifndef MRT_CJTHREAD_MODEL_H
#define MRT_CJTHREAD_MODEL_H
#include <list>
#include <mutex>
#include <sys/types.h>
#include <unistd.h>
#include "Concurrency/ConcurrencyModel.h"
#include "Mutator/Mutator.h"
#include "RuntimeConfig.h"
namespace MapleRuntime {
class CJThreadModel : public ConcurrencyModel {
public:
CJThreadModel() = default;
~CJThreadModel() override = default;
void Init(const ConcurrencyParam param, ScheduleType type) override;
void VisitGCRoots(RootVisitor* visitorHandle) override;
void* GetThreadScheduler() const override { return scheduler; }
size_t GetReservedStackSize() const override { return reservedStackSize; }
bool GetStackGuardCheckFlag() const override { return stackGuardCheck; }
};
}
#endif