File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -400,6 +400,35 @@ impl PyroscopeAgent {
400400 Ok ( ( ) )
401401 }
402402
403+ pub fn tag_wrapper (
404+ & self ,
405+ ) -> (
406+ impl Fn ( String , String ) -> Result < ( ) > ,
407+ impl Fn ( String , String ) -> Result < ( ) > ,
408+ ) {
409+ let backend_add = self . backend . backend . clone ( ) ;
410+ let backend_remove = self . backend . backend . clone ( ) ;
411+
412+ (
413+ move |key, value| {
414+ let thread_id = crate :: utils:: pthread_self ( ) ?;
415+ let rule = Rule :: ThreadTag ( thread_id, Tag :: new ( key, value) ) ;
416+ let backend = backend_add. lock ( ) ?;
417+ backend. as_ref ( ) . unwrap ( ) . add_rule ( rule) ?;
418+
419+ Ok ( ( ) )
420+ } ,
421+ move |key, value| {
422+ let thread_id = crate :: utils:: pthread_self ( ) ?;
423+ let rule = Rule :: ThreadTag ( thread_id, Tag :: new ( key, value) ) ;
424+ let backend = backend_remove. lock ( ) ?;
425+ backend. as_ref ( ) . unwrap ( ) . remove_rule ( rule) ?;
426+
427+ Ok ( ( ) )
428+ } ,
429+ )
430+ }
431+
403432 pub fn add_global_tag ( & mut self , tag : Tag ) -> Result < ( ) > {
404433 let rule = Rule :: GlobalTag ( tag) ;
405434 self . backend . add_rule ( rule) ?;
Original file line number Diff line number Diff line change @@ -81,6 +81,7 @@ pub fn pthread_self() -> Result<u64> {
8181 Ok ( thread_id)
8282}
8383
84+ #[ cfg( test) ]
8485mod pthread_self_tests {
8586 use crate :: utils:: pthread_self;
8687
You can’t perform that action at this time.
0 commit comments