rt_varspace_object.template.h 705 B

12345678910111213141516171819202122232425
  1. #ifndef AFUN_RT_VARSPACE_OBJECT_TEMPLATE_H
  2. #define AFUN_RT_VARSPACE_OBJECT_TEMPLATE_H
  3. #include "rt_varspace_object.h"
  4. namespace aFunrt {
  5. template <typename Callable, typename...T>
  6. void VarSpace::forEach(Callable func, T...arg) {
  7. std::unique_lock<std::mutex> mutex{lock};
  8. for (auto &tmp : var) {
  9. mutex.unlock();
  10. func(tmp.second, arg...);
  11. mutex.lock();
  12. }
  13. }
  14. template <typename Callable, typename...T>
  15. void VarSpace::forEachLock(Callable func, T...arg) {
  16. std::unique_lock<std::mutex> mutex{lock};
  17. for (auto &tmp : var)
  18. func(tmp.second, arg...);
  19. }
  20. }
  21. #endif //AFUN_RT_VARSPACE_OBJECT_TEMPLATE_H