summaryrefslogtreecommitdiff
path: root/src/rps/test_rps.c
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2015-08-02 17:48:51 +0000
committerJulius Bünger <buenger@mytum.de>2015-08-02 17:48:51 +0000
commit1f4b318b6e79a83800415c441465fd6b8c1c4a85 (patch)
tree0ca6f3ac45a05ba461dec49ee28969a7829549cd /src/rps/test_rps.c
parentad63b02064fb479339eb6cadff25923cebd730ff (diff)
downloadgnunet-1f4b318b6e79a83800415c441465fd6b8c1c4a85.tar.gz
gnunet-1f4b318b6e79a83800415c441465fd6b8c1c4a85.zip
-fixes
Diffstat (limited to 'src/rps/test_rps.c')
-rw-r--r--src/rps/test_rps.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/rps/test_rps.c b/src/rps/test_rps.c
index 3d3853d64..683f2e8a3 100644
--- a/src/rps/test_rps.c
+++ b/src/rps/test_rps.c
@@ -718,7 +718,8 @@ default_reply_handle (void *cls,
718 i, 718 i,
719 GNUNET_i2s (&recv_peers[i])); 719 GNUNET_i2s (&recv_peers[i]));
720 720
721 GNUNET_array_append (rps_peer->rec_ids, rps_peer->num_rec_ids, recv_peers[i]); 721 /* GNUNET_array_append (rps_peer->rec_ids, rps_peer->num_rec_ids, recv_peers[i]); */
722 rps_peer->num_rec_ids++;
722 } 723 }
723 724
724 if (0 == evaluate ()) 725 if (0 == evaluate ())
@@ -821,6 +822,12 @@ schedule_missing_requests (struct RPSPeer *rps_peer)
821 unsigned int i; 822 unsigned int i;
822 struct PendingRequest *pending_req; 823 struct PendingRequest *pending_req;
823 824
825 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
826 "Scheduling %u - %u missing requests\n",
827 rps_peer->num_ids_to_request,
828 rps_peer->num_pending_reqs + rps_peer->num_pending_reps);
829 GNUNET_assert (rps_peer->num_pending_reqs + rps_peer->num_pending_reps <=
830 rps_peer->num_ids_to_request);
824 for (i = rps_peer->num_pending_reqs + rps_peer->num_pending_reps; 831 for (i = rps_peer->num_pending_reqs + rps_peer->num_pending_reps;
825 i < rps_peer->num_ids_to_request; i++) 832 i < rps_peer->num_ids_to_request; i++)
826 { 833 {
@@ -841,6 +848,8 @@ schedule_missing_requests (struct RPSPeer *rps_peer)
841void 848void
842cancel_pending_req_rep (struct RPSPeer *rps_peer) 849cancel_pending_req_rep (struct RPSPeer *rps_peer)
843{ 850{
851 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
852 "Cancelling all (pending) requests.\n");
844 while (NULL != rps_peer->pending_req_head) 853 while (NULL != rps_peer->pending_req_head)
845 cancel_pending_req (rps_peer->pending_req_head); 854 cancel_pending_req (rps_peer->pending_req_head);
846 GNUNET_assert (0 == rps_peer->num_pending_reqs); 855 GNUNET_assert (0 == rps_peer->num_pending_reqs);
@@ -1072,14 +1081,16 @@ manage_service_wrapper (unsigned int i, unsigned int j, int delta,
1072 i, 1081 i,
1073 j, 1082 j,
1074 GNUNET_i2s (rps_peers[j].peer_id), 1083 GNUNET_i2s (rps_peers[j].peer_id),
1075 (delta < 0)? "online" : "offline"); 1084 (0 > delta) ? "online" : "offline");
1076 if (prob < prob_go_on_off * UINT32_MAX) 1085 if (prob < prob_go_on_off * UINT32_MAX)
1077 { 1086 {
1078 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1087 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1079 "%s goes %s\n", 1088 "%s goes %s\n",
1080 GNUNET_i2s (rps_peers[j].peer_id), 1089 GNUNET_i2s (rps_peers[j].peer_id),
1081 (delta < 0) ? "offline" : "online"); 1090 (0 > delta) ? "offline" : "online");
1082 1091
1092 if (0 > delta)
1093 cancel_pending_req_rep (&rps_peers[j]);
1083 entry = make_oplist_entry (); 1094 entry = make_oplist_entry ();
1084 entry->delta = delta; 1095 entry->delta = delta;
1085 entry->index = j; 1096 entry->index = j;
@@ -1088,7 +1099,7 @@ manage_service_wrapper (unsigned int i, unsigned int j, int delta,
1088 "rps", 1099 "rps",
1089 &churn_cb, 1100 &churn_cb,
1090 entry, 1101 entry,
1091 (delta < 0) ? 0 : 1); 1102 (0 > delta) ? 0 : 1);
1092 } 1103 }
1093} 1104}
1094 1105
@@ -1133,7 +1144,6 @@ churn (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
1133 /* If online, shut down with certain probability */ 1144 /* If online, shut down with certain probability */
1134 if (GNUNET_YES == rps_peers[j].online) 1145 if (GNUNET_YES == rps_peers[j].online)
1135 { 1146 {
1136 cancel_pending_req_rep (&rps_peers[j]);
1137 manage_service_wrapper (i, j, -1, prob_go_offline); 1147 manage_service_wrapper (i, j, -1, prob_go_offline);
1138 } 1148 }
1139 1149
@@ -1203,11 +1213,7 @@ profiler_reply_handle (void *cls,
1203 "%" PRIu32 "\n", 1213 "%" PRIu32 "\n",
1204 (uint32_t) rcv_rps_peer->index); 1214 (uint32_t) rcv_rps_peer->index);
1205 } 1215 }
1206 /* Find #PendingReply holding the request handle */ 1216 default_reply_handle (cls, n, recv_peers);
1207 GNUNET_CONTAINER_DLL_remove (rps_peer->pending_rep_head,
1208 rps_peer->pending_rep_tail,
1209 pending_rep);
1210 rps_peer->num_pending_reps--;
1211} 1217}
1212 1218
1213 1219