aboutsummaryrefslogtreecommitdiff
path: root/src/ats/perf_ats_solver.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-02-08 16:24:42 +0000
committerChristian Grothoff <christian@grothoff.org>2015-02-08 16:24:42 +0000
commit4f4a572297261f4bddce6e39879340d91a492ab9 (patch)
tree0aea7620b69659cebbe4b5311263f04fd12a70a6 /src/ats/perf_ats_solver.c
parent386b7d1a0a8b86248e503602b30614b8a3984061 (diff)
downloadgnunet-4f4a572297261f4bddce6e39879340d91a492ab9.tar.gz
gnunet-4f4a572297261f4bddce6e39879340d91a492ab9.zip
avoid several linear scans and allocations by combining AddressWrapper and asi structs
Diffstat (limited to 'src/ats/perf_ats_solver.c')
-rw-r--r--src/ats/perf_ats_solver.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/ats/perf_ats_solver.c b/src/ats/perf_ats_solver.c
index b7ddec503..3f9c12f20 100644
--- a/src/ats/perf_ats_solver.c
+++ b/src/ats/perf_ats_solver.c
@@ -866,6 +866,15 @@ evaluate (int iteration)
866} 866}
867 867
868 868
869static unsigned int
870get_connectivity_cb (void *cls,
871 const struct GNUNET_PeerIdentity *peer)
872{
873 return GNUNET_CONTAINER_multipeermap_contains (ph.addresses,
874 peer);
875}
876
877
869/** 878/**
870 * Evaluate average results for all iterations 879 * Evaluate average results for all iterations
871 */ 880 */
@@ -1060,7 +1069,7 @@ do_delete_address (void *cls,
1060 GNUNET_CONTAINER_multipeermap_remove (ph.addresses, 1069 GNUNET_CONTAINER_multipeermap_remove (ph.addresses,
1061 pid, 1070 pid,
1062 cur)); 1071 cur));
1063 ph.sf->s_del (ph.sf->cls, cur, GNUNET_NO); 1072 ph.sf->s_del (ph.sf->cls, cur);
1064 GNUNET_free_non_null (cur->atsi); 1073 GNUNET_free_non_null (cur->atsi);
1065 GNUNET_free (cur); 1074 GNUNET_free (cur);
1066 return GNUNET_OK; 1075 return GNUNET_OK;
@@ -1292,6 +1301,7 @@ run (void *cls, char * const *args, const char *cfgfile,
1292 ph.addresses = GNUNET_CONTAINER_multipeermap_create (128, GNUNET_NO); 1301 ph.addresses = GNUNET_CONTAINER_multipeermap_create (128, GNUNET_NO);
1293 ph.env.addresses = ph.addresses; 1302 ph.env.addresses = ph.addresses;
1294 ph.env.bandwidth_changed_cb = bandwidth_changed_cb; 1303 ph.env.bandwidth_changed_cb = bandwidth_changed_cb;
1304 ph.env.get_connectivity = &get_connectivity_cb;
1295 ph.env.get_preferences = &get_preferences_cb; 1305 ph.env.get_preferences = &get_preferences_cb;
1296 ph.env.network_count = GNUNET_ATS_NetworkTypeCount; 1306 ph.env.network_count = GNUNET_ATS_NetworkTypeCount;
1297 ph.env.info_cb = &solver_info_cb; 1307 ph.env.info_cb = &solver_info_cb;