MCPcopy Create free account
hub / github.com/CppMicroServices/CppMicroServices / Shutdown

Method Shutdown

framework/src/util/FrameworkPrivate.cpp:176–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

174 }
175
176 void
177 FrameworkPrivate::Shutdown(bool restart)
178 {
179 auto l = Lock();
180 US_UNUSED(l);
181 bool wasActive = false;
182 switch (static_cast<Bundle::State>(state.load()))
183 {
184 case Bundle::STATE_INSTALLED:
185 case Bundle::STATE_RESOLVED:
186 ShutdownDone_unlocked(false);
187 break;
188 case Bundle::STATE_ACTIVE:
189 wasActive = true;
190 [[fallthrough]];
191 case Bundle::STATE_STARTING:
192 {
193 bool const wa = wasActive;
194#ifdef US_ENABLE_THREADING_SUPPORT
195 if (!shutdownThread.joinable())
196 {
197 shutdownThread = std::thread(std::bind(&FrameworkPrivate::Shutdown0, this, restart, wa));
198 }
199#else
200 Shutdown0(restart, wa);
201#endif
202 break;
203 }
204 case Bundle::STATE_UNINSTALLED:
205 case Bundle::STATE_STOPPING:
206 // Shutdown already inprogress
207 break;
208 }
209 }
210
211 void
212 FrameworkPrivate::Start(uint32_t)

Callers 1

Calls 1

LockFunction · 0.85

Tested by

no test coverage detected