Add "tasks" threads and processor

Details

Description

Sometimes, in both the core and in SDK plugins, it might be useful to create "background tasks". Right now, it's only possible to schedule such tasks (continuations) on the normal net-threads. This could cause imbalance in thread "load", particularly for longer running tasks. A new thread type will be created, ET_TASK, which by default is the same as the net threads (ET_CALL), but via a records.config option, any continuations scheduled on ET_TASK can be off-loaded on a new set of threads (a threadpool with a configurable size).

One new configuration option is added, with a default of 0:

CONFIG proxy.config.task_threads INT 0

In addition, more functionality can / should be added to the TasksProcessor, to make it easy and convenient to use. SDK APIs must also be added (or modified) to schedule plugin "tasks" on this thread pool.

My initial checkin will be merely a "stub" processor, to get things started.

John Plevyak
added a comment - 22/Dec/10 21:12 Right now ET_CALL, ET_NET and ET_TASK are the same unless task_threads is set > 0
So, ET_DEFAULT_THREAD_TYPE could just be ET_TASK if you want and it would accomplish the
same thing.