@@ -86,14 +86,14 @@ TaskThreadPoolBase& _get_intraop_pool() {
8686#endif  //  C10_MOBILE
8787
8888//  Run lambda function `fn` over `task_id` in [0, `range`) with threadpool.
89- //  `fn` will be called with params: (thread_pool_task_id,  task_id) .
90- void  _run_with_pool (const  std::function<void (int ,  size_t )>& fn, size_t range) {
89+ //  `fn` will be called with params: task_id.
90+ static   void  _run_with_pool (const  std::function<void (size_t )>& fn, size_t range) {
9191#ifndef  C10_MOBILE
9292  for  (const  auto  i : c10::irange (1 , range)) {
93-     _get_intraop_pool ().run ([fn, i]() { fn (( int )i,  i); });
93+     _get_intraop_pool ().run ([fn, i]() { fn (i); });
9494  }
9595  //  Run the first task on the current thread directly.
96-   fn (0 ,  0 );
96+   fn (0 );
9797#else 
9898  caffe2::PThreadPool* const  pool = caffe2::pthreadpool ();
9999  TORCH_INTERNAL_ASSERT (pool, " Invalid thread pool!"  );
@@ -102,7 +102,7 @@ void _run_with_pool(const std::function<void(int, size_t)>& fn, size_t range) {
102102    //  PThreadPool::run() is blocking.  A std::function [const] reference to
103103    //  this lambda cannot go out of scope before PThreadPool::run() returns.
104104    [&fn](const  size_t  task_id) {
105-       fn (0   /*  unused  */ ,  task_id);
105+       fn (task_id);
106106    }, range);
107107#endif  //  C10_MOBILE
108108}
@@ -113,6 +113,10 @@ struct ParallelRegionGuard {
113113    internal::set_thread_num (task_id);
114114    _set_in_parallel_region (true );
115115  }
116+   ParallelRegionGuard (const  ParallelRegionGuard&) = delete ;
117+   ParallelRegionGuard (ParallelRegionGuard&&) = delete ;
118+   ParallelRegionGuard& operator =(const  ParallelRegionGuard&) = delete ;
119+   ParallelRegionGuard& operator =(ParallelRegionGuard&&) = delete ;
116120
117121  ~ParallelRegionGuard () {
118122    _set_in_parallel_region (false );
@@ -124,16 +128,16 @@ struct ParallelRegionGuard {
124128
125129namespace  internal  {
126130
127- inline  std::tuple<size_t , size_t > calc_num_tasks_and_chunk_size (
131+ static  std::tuple<size_t , size_t > calc_num_tasks_and_chunk_size (
128132    int64_t  begin, int64_t  end, int64_t  grain_size) {
129133  if  ((end - begin) < grain_size) {
130134    return  std::make_tuple (1 , std::max ((int64_t )0 , end - begin));
131135  }
132136  //  Choose number of tasks based on grain size and number of threads.
133-   size_t  chunk_size = divup ((end - begin), get_num_threads ());
137+   int64_t  chunk_size = divup ((end - begin), get_num_threads ());
134138  //  Make sure each task is at least grain_size size.
135-   chunk_size = std::max (( size_t ) grain_size, chunk_size);
136-   size_t  num_tasks = divup ((end - begin), chunk_size);
139+   chunk_size = std::max (grain_size, chunk_size);
140+   size_t  num_tasks = static_cast < size_t >( divup ((end - begin), chunk_size) );
137141  return  std::make_tuple (num_tasks, chunk_size);
138142}
139143
@@ -157,12 +161,12 @@ void invoke_parallel(
157161  } state;
158162
159163  auto  task = [f, &state, begin, end, chunk_size]
160-       (int   /*  unused  */ ,  size_t  task_id) {
161-     int64_t  local_start = begin + task_id * chunk_size;
164+       (size_t  task_id) {
165+     int64_t  local_start = static_cast < int64_t >( begin + task_id * chunk_size) ;
162166    if  (local_start < end) {
163-       int64_t  local_end = std::min (end, ( int64_t ) (chunk_size + local_start));
167+       int64_t  local_end = std::min (end, static_cast < int64_t > (chunk_size + local_start));
164168      try  {
165-         ParallelRegionGuard guard (task_id);
169+         ParallelRegionGuard guard (static_cast < int >( task_id) );
166170        f (local_start, local_end);
167171      } catch  (...) {
168172        if  (!state.err_flag .test_and_set ()) {
0 commit comments