| 2131 | |
| 2132 | template <class F> |
| 2133 | THREAD_HANDLE startThreadF(F&& func) { |
| 2134 | struct Thing { |
| 2135 | F f; |
| 2136 | Thing(F&& f) : f(std::move(f)) {} |
| 2137 | THREAD_FUNC start(void* p) { |
| 2138 | Thing* self = (Thing*)p; |
| 2139 | self->f(); |
| 2140 | delete self; |
| 2141 | THREAD_RETURN; |
| 2142 | } |
| 2143 | }; |
| 2144 | Thing* t = new Thing(std::move(func)); |
| 2145 | return g_network->startThread(Thing::start, t); |
| 2146 | } |
| 2147 | |
| 2148 | TEST_CASE("/flow/Net2/ThreadSafeQueue/Interface") { |
| 2149 | ThreadSafeQueue<int> tq; |
no test coverage detected