X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fdoc%2Fdeveloper%2Frequests_servicing_schedulers.txt;h=23644ba8563cb1016d25d737c300eb7a886d161c;hb=8436038a4e160b8916eee165b2a897d05d4bca2f;hp=a0d15ccc742dfd3ef3c139f1d25d5b6506c0f523;hpb=582fbccdb064019a4d351e3446663ad30d5b6715;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 a0d15ccc..23644ba8 100644 --- a/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt +++ b/ltt/branches/poly/doc/developer/requests_servicing_schedulers.txt @@ -68,8 +68,10 @@ at the same time. Another difference is that the hook_data of theses requests will typically be NULL, and the typical hook function will be located in a library upon which the viewer depends. -A viewer is informed of the completeness of its request by its after_request -hook registered along with the events request. +A viewer is informed of the completeness of part of its request by its +after_traceset hook registered along with the events request. This hook is +called after the end of each chunk : the viewer will see if the computed data +suits its needs. Hooks Lists @@ -81,6 +83,56 @@ from the list. Two hooks are identical if they have the same function pointer and hook_data. + +Implementation + +Ad Hoc Computation + +see lttvwindow_events_delivery.txt + + +Hooks Lists + +need new ref_count field with each hook +lttv_hook_add and lttv_hook_add_list must compare addition with present and +increment ref counter if already present. + +lttv_hook_remove and remove_with_data must decrement ref_count is >1, or remove +the element otherwise (==1). + + + +Background Scheduler + +Global traces + +Two global attributes per trace : +/traces/path_to_trace/LttvTrace + It is a pointer to the LttvTrace structure. +/traces/path_to_trace/LttvBackgroundComputation + +struct _LttvBackgroundComputation { + GSList *events_requests; + /* A GSList * to the first events request of background computation for a + * trace. */ + LttvTraceset *ts; + /* A factice traceset that contains just one trace */ + LttvTracesetContext *tsc; + /* The traceset context that reads this trace */ +} + + + + +Modify Traceset +Points to the global traces. Opens new one only when no instance of the pathname +exists. + +Modify LttvTrace ? + +Modify trace opening / close to make them create and destroy +LttvBackgroundComputation (and call end requests hooks for servicing requests ?) + EventsRequest Structure This structure is the element of the events requests pools. The viewer field is @@ -96,5 +148,3 @@ to NULL instead. No particular hook_data is needed as this type of request does only modify trace related data structures which are available through the call_data. - -