Example #1
0
int main(int argc, char** argv) {
    int i;
    ThreadPool* pool = createPool(5); // Intentionally ignoring the CORE * 2 + 1 rule.

    Task task2[10];

    for(i = 0; i < 10; ++i) {
        task2[i].deadline = DONTCARE;
        task2[i].runnable = &starve;
        addTask(pool, &task2[i]);
    }

    Task task[2];
    for(i = 0; i < 2; ++i) {
        task[i].deadline = 4; // in seconds.
        task[i].runnable = &echoTest;
        addTask(pool, &task[i]);
    }

    joinThreadPool(pool);

    free(pool);

    return 0;
}
inline void AsioThreadPool::worker_thread_func()
{
    joinThreadPool();
}