Peter Firmstone wrote:
Patricia Shanahan wrote:
...
The more I think about it the more I feel TaskManager represents a
coincidental coupling between two logically distinct modules:
1. A sequencer whose business is determining whether a task is runnable.
2. A thread pool whose business is allocation of runnable tasks to
threads.
Separating these functions might allow different types of sequencer,
including a trivial one for cases in which there are no sequencing
requirements. In some cases, tasks may be being allocated to the same
TaskManager to share a thread pool even if they have no sequence
relationship.
That said, some of the code I've read suggests that I can probably
make the sequencing more efficient by putting it in a utility module
than it would be if every using module implemented it separately.
Patricia
That's very similar to the lines I was thinking along earlier, I started
sketched something out, I can send it to you, you might find some parts
useful or interesting.
Yes, one of your e-mails first planted the question in my mind. Please
send what you have.
My latest thinking is that, given the number of use-cases that do not
require any sequencing, there should be a SimpleTaskManager that only
deals with them.
Thanks,
Patricia