| 72 | |
| 73 | template<typename Fun, typename... Args> |
| 74 | std::thread make_named_thread(std::string_view n, |
| 75 | Fun&& fun, |
| 76 | Args&& ...args) { |
| 77 | |
| 78 | return std::thread([n = std::string(n)](auto&& fun, auto&& ...args) { |
| 79 | ceph_pthread_setname(n.data()); |
| 80 | std::invoke(std::forward<Fun>(fun), |
| 81 | std::forward<Args>(args)...); |
| 82 | }, std::forward<Fun>(fun), std::forward<Args>(args)...); |
| 83 | } |
| 84 | #endif |