| 238 | } |
| 239 | |
| 240 | std::shared_ptr<streamfx::util::threadpool::threadpool> streamfx::util::threadpool::threadpool::instance() |
| 241 | { |
| 242 | static std::weak_ptr<streamfx::util::threadpool::threadpool> winst; |
| 243 | static std::mutex mtx; |
| 244 | |
| 245 | std::unique_lock<decltype(mtx)> lock(mtx); |
| 246 | auto instance = winst.lock(); |
| 247 | if (!instance) { |
| 248 | instance = std::shared_ptr<streamfx::util::threadpool::threadpool>(new streamfx::util::threadpool::threadpool()); |
| 249 | winst = instance; |
| 250 | } |
| 251 | return instance; |
| 252 | }; |
| 253 | |
| 254 | static std::shared_ptr<streamfx::util::threadpool::threadpool> loader_instance; |
| 255 | |