diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-08-24 09:36:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-24 09:36:11 -0700 |
commit | 646528bc53c37950b556be825de1ba9fa5303be3 (patch) | |
tree | d1ac59acb28768ee270e31d296453bbca2b5f55f /src/mbgl/util | |
parent | 7a84a0e4eaafb9ac3b7179aef613ad1627fe214c (diff) | |
download | qtlocation-mapboxgl-646528bc53c37950b556be825de1ba9fa5303be3.tar.gz |
[core] Simplify Thread::invokeSync (#6128)
Diffstat (limited to 'src/mbgl/util')
-rw-r--r-- | src/mbgl/util/thread.hpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/mbgl/util/thread.hpp b/src/mbgl/util/thread.hpp index cd90e08049..31a56a4834 100644 --- a/src/mbgl/util/thread.hpp +++ b/src/mbgl/util/thread.hpp @@ -44,23 +44,15 @@ public: } // Invoke object->fn(args...) in the runloop thread, and wait for the result. - template <class R, typename Fn, class... Args> - R invokeSync(Fn fn, Args&&... args) { + template <typename Fn, class... Args> + auto invokeSync(Fn fn, Args&&... args) { + using R = std::result_of_t<Fn(Object, Args&&...)>; std::packaged_task<R ()> task(std::bind(fn, object, args...)); std::future<R> future = task.get_future(); loop->invoke(std::move(task)); return future.get(); } - // Invoke object->fn(args...) in the runloop thread, and wait for it to complete. - template <typename Fn, class... Args> - void invokeSync(Fn fn, Args&&... args) { - std::packaged_task<void ()> task(std::bind(fn, object, args...)); - std::future<void> future = task.get_future(); - loop->invoke(std::move(task)); - future.get(); - } - private: Thread(const Thread&) = delete; Thread(Thread&&) = delete; |