MCPcopy Create free account
hub / github.com/Apache553/SubtitleFontHelper / DaemonMain

Method DaemonMain

SubtitleFontAutoLoaderDaemon/Main.cpp:103–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101
102 public:
103 int DaemonMain(const std::vector<std::wstring>& cmdline)
104 {
105 std::unique_lock ul(m_queueLock);
106 m_msgQueue.emplace(MessageType::Init, &cmdline);
107 while (!m_msgQueue.empty())
108 {
109 auto [msgType, msgArg] = m_msgQueue.front();
110 m_msgQueue.pop();
111 ul.unlock();
112 switch (msgType)
113 {
114 case MessageType::Init:
115 OnInit(*std::get<const std::vector<std::wstring>*>(msgArg));
116 break;
117 case MessageType::Exception:
118 OnException(std::get<std::exception_ptr>(msgArg));
119 break;
120 case MessageType::Exit:
121 return 0;
122 case MessageType::Reload:
123 OnInit(cmdline);
124 break;
125 default:
126 MarkUnreachable();
127 }
128 ul.lock();
129 if (m_msgQueue.empty())
130 {
131 m_queueCV.wait(ul, [&]()
132 {
133 return !m_msgQueue.empty();
134 });
135 }
136 }
137 MarkUnreachable();
138 }
139
140 private:
141 void OnInit(const std::vector<std::wstring>& cmdline)

Callers 1

wWinMainFunction · 0.80

Calls 1

MarkUnreachableFunction · 0.70

Tested by

no test coverage detected