X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fdoc%2Fdeveloper%2Frequests_servicing_schedulers.txt;h=9779691f3ccc21ea8c733236f679a2382f0232e1;hb=2d262115fc06b5ffb6038207a6d0c1d5f81763c2;hp=3686939be38b540437f690bdb7ad10e499504eac;hpb=501e4e70320aeb56090ada4447958db1c2ed6616;p=lttv.git diff --git a/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt b/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt index 3686939b..9779691f 100644 --- a/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt +++ b/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt @@ -224,6 +224,10 @@ Background Requests Servicing Algorithm (v1) list_in : currently serviced requests list_out : queue of requests waiting for processing +notification lists : +notify_in : currently checked notifications +notify_out : queue of notifications that comes along with next processing. + 1. Before processing if list_in is empty @@ -232,19 +236,25 @@ list_out : queue of requests waiting for processing - add hooks to context - set hooks'in_progress flag to TRUE - seek trace to start + - Move all notifications from notify_out to notify_in. 2. call process traceset middle for a chunk (assert list_in is not empty! : should not even be called in that case) 3. After the chunk 3.1 call after_chunk hooks from list_in + 3.2 for each notify_in + - if current time >= notify time, call notify and remove from notify_in + - if current position >= notify position, call notify and remove from + notify_in 3.2 if end of trace reached - for each request in list_in - set hooks'in_progress flag to FALSE - set hooks'ready flag to TRUE - - call end request - remove hooks from context - remove request + - for each notifications in notify_in + - call notify and remove from notify_in - return FALSE (scheduler stopped) 3.3 else - return TRUE (scheduler still registered)