From fe540f09b9149fb88ff325548baa42e11ea2b43b Mon Sep 17 00:00:00 2001 From: Gonzalo Diethelm Date: Mon, 20 Jul 2020 18:00:26 +0200 Subject: [PATCH] Cleaned up design doc --- docs/Design.md | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/Design.md b/docs/Design.md index 68450ad..c45394b 100644 --- a/docs/Design.md +++ b/docs/Design.md @@ -1,47 +1,47 @@ ## High level - + Description: Library providing a threading pool where you can add work on the fly. The number of threads in the pool is adjustable when creating the pool. In most cases this should equal the number of threads supported by your cpu. - + For an example on how to use the threadpool, check the main.c file or just read the documentation found in the README.md file. - + In this header file a detailed overview of the functions and the threadpool's logical - scheme is presented in case you wish to tweak or alter something. - - - - _______________________________________________________ + scheme is presented in case you wish to tweak or alter something. + + + + _______________________________________________________ / \ - | JOB QUEUE | job1 | job2 | job3 | job4 | .. | + | JOB QUEUE | job1 | job2 | job3 | job4 | .. | | | | threadpool | thread1 | thread2 | .. | \_______________________________________________________/ - - + + Description: Jobs are added to the job queue. Once a thread in the pool - is idle, it is assigned with the first job from the queue(and - erased from the queue). It's each thread's job to read from - the queue serially(using lock) and executing each job + is idle, it is assigned the first job from the queue (and that job is + erased from the queue). It is each thread's job to read from + the queue serially (using lock) and executing each job until the queue is empty. - - + + Scheme: - - thpool______ jobqueue____ ______ + + thpool______ jobqueue____ ______ | | | | .----------->|_job0_| Newly added job | | | rear ----------' |_job1_| | jobqueue----------------->| | |_job2_| - | | | front ----------. |__..__| + | | | front ----------. |__..__| |___________| |___________| '----------->|_jobn_| Job for thread to take - - - job0________ + + + job0________ | | | function----> | | | arg-------> - | | job1________ + | | job1________ | next-------------->| | |___________| | |..