同步操作将从 libhv/libhv 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef HV_ASYNC_H_#define HV_ASYNC_H_#include "hexport.h"#include "hthreadpool.h"#include "singleton.h"namespace hv {class HV_EXPORT GlobalThreadPool : public HThreadPool {SINGLETON_DECL(GlobalThreadPool)protected:GlobalThreadPool() : HThreadPool() {}~GlobalThreadPool() {}};/** return a future, calling future.get() will wait task done and return RetType.* async(fn, args...)* async(std::bind(&Class::mem_fn, &obj))* async(std::mem_fn(&Class::mem_fn, &obj))**/template<class Fn, class... Args>auto async(Fn&& fn, Args&&... args) -> std::future<decltype(fn(args...))> {return GlobalThreadPool::instance()->commit(std::forward<Fn>(fn), std::forward<Args>(args)...);}class async {public:static void startup(int min_threads = DEFAULT_THREAD_POOL_MIN_THREAD_NUM,int max_threads = DEFAULT_THREAD_POOL_MAX_THREAD_NUM,int max_idle_ms = DEFAULT_THREAD_POOL_MAX_IDLE_TIME) {GlobalThreadPool* gtp = GlobalThreadPool::instance();if (gtp->isStarted()) return;gtp->setMinThreadNum(min_threads);gtp->setMaxThreadNum(max_threads);gtp->setMaxIdleTime(max_idle_ms);gtp->start();}static void cleanup() {GlobalThreadPool::exitInstance();}};} // end namespace hv#endif // HV_ASYNC_H_
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。