Ticket #2683 (closed: fixed)

Opened 10 years ago

Last modified 5 years ago

ThreadPool: ability to resume a ThreadScheduler without restarting threads

Reported by: Janik Zikovsky Owned by: Janik Zikovsky
Priority: major Milestone: Iteration 28
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: Tester: Vickie Lynch

Description

I need to be able to interrupt a list of tasks with a new list of tasks that cannot run concurrently with the first list:

  • Wait for all current tasks to complete.
  • Switch to a new scheduler
  • Finish the tasks in that scheduler.
  • Resume the tasks in the old scheduler.

Change History

comment:1 Changed 10 years ago by Janik Zikovsky

  • Status changed from new to accepted

comment:2 Changed 10 years ago by Janik Zikovsky

  • Summary changed from ThreadPool: ability to interrupt a scheduler with another. to ThreadPool: ability to resume a ThreadScheduler without restarting threads

Change description:

  • new method, similar to joinAll, that does not abort threads when the scheduler is empty. Instead, it allows the scheduler to get re-filled and the threads just wait for new tasks.

comment:3 Changed 10 years ago by Janik Zikovsky

  • Status changed from accepted to verify
  • Resolution set to fixed

(In [10169]) Fixes #2683: Can resume a thread pool after all tasks were used up.

comment:4 Changed 9 years ago by Vickie Lynch

  • Status changed from verify to verifying
  • Tester set to Vickie Lynch

comment:5 Changed 9 years ago by Vickie Lynch

  • Status changed from verifying to closed

The test in KernelTest.ThreadPoolTest works correctly so this must be OK.

comment:6 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 3530

Note: See TracTickets for help on using tickets.