28class TerminalProcess_LinuxPty :
public ITerminalProcess
31 TerminalProcess_LinuxPty();
32 ~TerminalProcess_LinuxPty()
override;
34 bool Start(
const TerminalLaunchConfig& cfg, std::string& outError)
override;
35 bool WriteStdin(
const char* data,
size_t len)
override;
36 void RequestStop()
override;
37 void ForceKill()
override;
38 bool IsRunning()
const override {
return mRunning.load(); }
39 int GetExitCode()
const override {
return mExitCode.load(); }
41 bool IsTty()
const override {
return true; }
51 std::unique_ptr<ITerminalOutputParser> mParser;
54 std::thread mWaitThread;
56 std::atomic<bool> mRunning{
false };
57 std::atomic<bool> mStopRequested{
false };
58 std::atomic<int> mExitCode{ 0 };
60 std::mutex mStdinMutex;
61 std::mutex mLifecycleMutex;