diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-07-02 15:08:37 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-07-02 15:08:37 +0000 |
commit | 1524472d6ceafe79495a81fc9313fa981495a3b1 (patch) | |
tree | deb6e9502e700356192e4638ad934bb168d68e3d /src/ats/gnunet-service-ats-solver_proportional.c | |
parent | f1f81d41ae55f0107d4f2ac752544b3dce7d2214 (diff) | |
download | gnunet-1524472d6ceafe79495a81fc9313fa981495a3b1.tar.gz gnunet-1524472d6ceafe79495a81fc9313fa981495a3b1.zip |
finished buld support
Diffstat (limited to 'src/ats/gnunet-service-ats-solver_proportional.c')
-rw-r--r-- | src/ats/gnunet-service-ats-solver_proportional.c | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/src/ats/gnunet-service-ats-solver_proportional.c b/src/ats/gnunet-service-ats-solver_proportional.c index b9b0d9a4e..7f3fe58d8 100644 --- a/src/ats/gnunet-service-ats-solver_proportional.c +++ b/src/ats/gnunet-service-ats-solver_proportional.c | |||
@@ -251,7 +251,7 @@ struct GAS_PROPORTIONAL_Handle | |||
251 | /** | 251 | /** |
252 | * Number of changes while solver was locked | 252 | * Number of changes while solver was locked |
253 | */ | 253 | */ |
254 | int bulk_changes; | 254 | int bulk_requests; |
255 | 255 | ||
256 | 256 | ||
257 | /** | 257 | /** |
@@ -416,6 +416,13 @@ distribute_bandwidth_in_network (struct GAS_PROPORTIONAL_Handle *s, | |||
416 | unsigned long long assigned_quota_out = 0; | 416 | unsigned long long assigned_quota_out = 0; |
417 | struct AddressWrapper *cur; | 417 | struct AddressWrapper *cur; |
418 | 418 | ||
419 | |||
420 | if (GNUNET_YES == s->bulk_lock) | ||
421 | { | ||
422 | s->bulk_requests++; | ||
423 | return; | ||
424 | } | ||
425 | |||
419 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 426 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
420 | "Recalculate quota for network type `%s' for %u addresses (in/out): %llu/%llu \n", | 427 | "Recalculate quota for network type `%s' for %u addresses (in/out): %llu/%llu \n", |
421 | net->desc, net->active_addresses, net->total_quota_in, net->total_quota_in); | 428 | net->desc, net->active_addresses, net->total_quota_in, net->total_quota_in); |
@@ -654,6 +661,7 @@ static void | |||
654 | distribute_bandwidth_in_all_networks (struct GAS_PROPORTIONAL_Handle *s) | 661 | distribute_bandwidth_in_all_networks (struct GAS_PROPORTIONAL_Handle *s) |
655 | { | 662 | { |
656 | int i; | 663 | int i; |
664 | |||
657 | for (i = 0; i < s->networks; i++) | 665 | for (i = 0; i < s->networks; i++) |
658 | distribute_bandwidth_in_network (s, &s->network_entries[i], NULL); | 666 | distribute_bandwidth_in_network (s, &s->network_entries[i], NULL); |
659 | 667 | ||
@@ -865,10 +873,7 @@ GAS_proportional_address_change_preference (void *solver, | |||
865 | GNUNET_assert (NULL != solver); | 873 | GNUNET_assert (NULL != solver); |
866 | GNUNET_assert (NULL != peer); | 874 | GNUNET_assert (NULL != peer); |
867 | 875 | ||
868 | if (GNUNET_NO == s->bulk_lock) | 876 | distribute_bandwidth_in_all_networks (s); |
869 | distribute_bandwidth_in_all_networks (s); | ||
870 | else | ||
871 | s->bulk_changes ++; | ||
872 | } | 877 | } |
873 | 878 | ||
874 | /** | 879 | /** |
@@ -934,10 +939,7 @@ GAS_proportional_get_preferred_address (void *solver, | |||
934 | s->bw_changed (s->bw_changed_cls, prev); /* notify about bw change, REQUIRED? */ | 939 | s->bw_changed (s->bw_changed_cls, prev); /* notify about bw change, REQUIRED? */ |
935 | if (GNUNET_SYSERR == addresse_decrement (s, net_prev, GNUNET_NO, GNUNET_YES)) | 940 | if (GNUNET_SYSERR == addresse_decrement (s, net_prev, GNUNET_NO, GNUNET_YES)) |
936 | GNUNET_break (0); | 941 | GNUNET_break (0); |
937 | if (GNUNET_NO == s->bulk_lock) | 942 | distribute_bandwidth_in_network (s, net_prev, NULL); |
938 | distribute_bandwidth_in_network (s, net_prev, NULL); | ||
939 | else | ||
940 | s->bulk_changes ++; | ||
941 | } | 943 | } |
942 | 944 | ||
943 | if (GNUNET_NO == (is_bandwidth_available_in_network (cur->solver_information))) | 945 | if (GNUNET_NO == (is_bandwidth_available_in_network (cur->solver_information))) |
@@ -948,11 +950,7 @@ GAS_proportional_get_preferred_address (void *solver, | |||
948 | 950 | ||
949 | cur->active = GNUNET_YES; | 951 | cur->active = GNUNET_YES; |
950 | addresse_increment(s, net_cur, GNUNET_NO, GNUNET_YES); | 952 | addresse_increment(s, net_cur, GNUNET_NO, GNUNET_YES); |
951 | if (GNUNET_NO == s->bulk_lock) | 953 | distribute_bandwidth_in_network (s, net_cur, cur); |
952 | distribute_bandwidth_in_network (s, net_cur, cur); | ||
953 | else | ||
954 | s->bulk_changes ++; | ||
955 | |||
956 | return cur; | 954 | return cur; |
957 | } | 955 | } |
958 | 956 | ||
@@ -1037,10 +1035,7 @@ GAS_proportional_address_delete (void *solver, | |||
1037 | address->active = GNUNET_NO; | 1035 | address->active = GNUNET_NO; |
1038 | if (GNUNET_SYSERR == addresse_decrement (s, net, GNUNET_NO, GNUNET_YES)) | 1036 | if (GNUNET_SYSERR == addresse_decrement (s, net, GNUNET_NO, GNUNET_YES)) |
1039 | GNUNET_break (0); | 1037 | GNUNET_break (0); |
1040 | if (GNUNET_NO == s->bulk_lock) | 1038 | distribute_bandwidth_in_network (s, net, NULL); |
1041 | distribute_bandwidth_in_network (s, net, NULL); | ||
1042 | else | ||
1043 | s->bulk_changes ++; | ||
1044 | } | 1039 | } |
1045 | LOG (GNUNET_ERROR_TYPE_DEBUG, "After deleting address now total %u and active %u addresses in network `%s'\n", | 1040 | LOG (GNUNET_ERROR_TYPE_DEBUG, "After deleting address now total %u and active %u addresses in network `%s'\n", |
1046 | net->total_addresses, | 1041 | net->total_addresses, |
@@ -1082,11 +1077,11 @@ GAS_proportional_bulk_stop (void *solver) | |||
1082 | return; | 1077 | return; |
1083 | } | 1078 | } |
1084 | s->bulk_lock --; | 1079 | s->bulk_lock --; |
1085 | if ((0 == s->bulk_lock) && (s->bulk_changes)) | 1080 | if ((0 == s->bulk_lock) && (0 < s->bulk_requests)) |
1086 | { | 1081 | { |
1087 | LOG (GNUNET_ERROR_TYPE_ERROR, "No lock pending, recalculating\n"); | 1082 | LOG (GNUNET_ERROR_TYPE_ERROR, "No lock pending, recalculating\n"); |
1088 | distribute_bandwidth_in_all_networks (s); | 1083 | distribute_bandwidth_in_all_networks (s); |
1089 | s->bulk_changes = 0; | 1084 | s->bulk_requests = 0; |
1090 | } | 1085 | } |
1091 | } | 1086 | } |
1092 | 1087 | ||
@@ -1194,10 +1189,7 @@ GAS_proportional_address_update (void *solver, | |||
1194 | /* Suggest updated address */ | 1189 | /* Suggest updated address */ |
1195 | address->active = GNUNET_YES; | 1190 | address->active = GNUNET_YES; |
1196 | addresse_increment (s, new_net, GNUNET_NO, GNUNET_YES); | 1191 | addresse_increment (s, new_net, GNUNET_NO, GNUNET_YES); |
1197 | if (GNUNET_NO == s->bulk_lock) | 1192 | distribute_bandwidth_in_network (solver, new_net, NULL); |
1198 | distribute_bandwidth_in_network (solver, new_net, NULL); | ||
1199 | else | ||
1200 | s->bulk_changes ++; | ||
1201 | } | 1193 | } |
1202 | else | 1194 | else |
1203 | { | 1195 | { |