diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-02-08 16:24:42 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-02-08 16:24:42 +0000 |
commit | 4f4a572297261f4bddce6e39879340d91a492ab9 (patch) | |
tree | 0aea7620b69659cebbe4b5311263f04fd12a70a6 /src/ats/perf_ats_solver.c | |
parent | 386b7d1a0a8b86248e503602b30614b8a3984061 (diff) | |
download | gnunet-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.c | 12 |
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 | ||
869 | static unsigned int | ||
870 | get_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; |