provider: only call discover for the provider implementations
PATCH 1/1 provider: only call discover for the provider implementations
Since the discover() functionality is provided by the implementation of a provider type rather than being specific to a provider, we only need to loop over dt_providers[]. The discover hooks themselves should take care of any newly discovered probes.
Suggested-by Eugene Loh <[email protected]>
Signed-off-by Kris Van Hees <[email protected]>
--- libdtrace/dt_provider.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
libdtrace/dt_provider.c +5 -4
@@ -186,12 +186,13 @@ int dt_provider_discover(dtrace_hdl_t *dtp) {int prid = dtp->dt_probe_id; -dt_htab_next_t *it =NULL ; -dt_provider_t *pvp; +int i;/* Discover new probes. */ -while ((pvp =dt_htab_next (dtp->dt_provs, &it)) !=NULL ) { -if (pvp->impl->discover && pvp->impl->discover (dtp) <0 ) +for (i =0 ; dt_providers[i]; i++) { +const dt_provimpl_t *pvops = dt_providers[i]; + +if (pvops->discover && pvops->discover (dtp) <0 )return -1 ;/* errno is already set */ }
Signature · 1 line
2.52.0
Reviewed-by Elena Zannoni <[email protected]>
Quoted 37 lines · Kris Van Hees
Since the
discover()functionality is provided by the implementation of a provider type rather than being specific to a provider, we only need to loop over dt_providers[]. The discover hooks themselves should take care of any newly discovered probes.Suggested-by Eugene Loh <[email protected]>Signed-off-by Kris Van Hees <[email protected]>--- libdtrace/dt_provider.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)libdtrace/dt_provider.c +5
-4@@ -186,12 +186,13 @@ int dt_provider_discover(dtrace_hdl_t *dtp) {int prid = dtp->dt_probe_id; -dt_htab_next_t *it =NULL ; -dt_provider_t *pvp; +int i;/* Discover new probes. */ -while ((pvp =dt_htab_next (dtp->dt_provs, &it)) !=NULL ) { -if (pvp->impl->discover && pvp->impl->discover (dtp) <0 ) +for (i =0 ; dt_providers[i]; i++) { +const dt_provimpl_t *pvops = dt_providers[i]; + +if (pvops->discover && pvops->discover (dtp) <0 )return -1 ;/* errno is already set */ }Signature · 1 line
2.52.0