X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1692f2d57cbdd2bfffcba9481b96fb58fec34016..1bf13b42c09009ec33fd1928b8bffd2ded6bb931:/examples/s4u/app-bittorrent/s4u-peer.cpp diff --git a/examples/s4u/app-bittorrent/s4u-peer.cpp b/examples/s4u/app-bittorrent/s4u-peer.cpp index 360bb203ac..a5e59bbc0e 100644 --- a/examples/s4u/app-bittorrent/s4u-peer.cpp +++ b/examples/s4u/app-bittorrent/s4u-peer.cpp @@ -22,7 +22,6 @@ constexpr int BLOCK_SIZE = 16384; /** Number of blocks asked by each request */ constexpr unsigned long BLOCKS_REQUESTED = 2UL; -constexpr bool ENABLE_END_GAME_MODE = true; constexpr double SLEEP_DURATION = 1.0; #define BITS_TO_BYTES(x) (((x) / 8 + (x) % 8) ? 1 : 0) @@ -369,10 +368,6 @@ void Peer::handleMessage() XBT_DEBUG(" \t for piece %d (%d,%d)", message->piece, message->block_index, message->block_index + message->block_length); xbt_assert(not remote_peer->choked_download); - xbt_assert(remote_peer->am_interested || ENABLE_END_GAME_MODE, - "Can't received a piece if I'm not interested without end-game mode!" - "piece (%d) bitfield (%u) remote bitfield (%u)", - message->piece, bitfield_, remote_peer->bitfield); xbt_assert(not remote_peer->choked_download, "Can't received a piece if I'm choked !"); xbt_assert((message->piece >= 0 && static_cast(message->piece) < FILE_PIECES), "Wrong piece received"); @@ -394,7 +389,6 @@ void Peer::handleMessage() } } else { XBT_DEBUG("However, we already have it"); - xbt_assert(ENABLE_END_GAME_MODE, "Should not happen because we don't use end game mode !"); requestNewPieceTo(remote_peer); } break; @@ -444,8 +438,6 @@ int Peer::selectPieceToDownload(Connection* remote_peer) // end game mode if (countPieces(current_pieces) >= (FILE_PIECES - countPieces(bitfield_)) && isInterestedBy(remote_peer)) { - if (not ENABLE_END_GAME_MODE) - return -1; int nb_interesting_pieces = 0; // compute the number of interesting pieces for (unsigned int i = 0; i < FILE_PIECES; i++) @@ -454,8 +446,7 @@ int Peer::selectPieceToDownload(Connection* remote_peer) xbt_assert(nb_interesting_pieces != 0); // get a random interesting piece - std::uniform_int_distribution dist(0, nb_interesting_pieces - 1); - int random_piece_index = dist(generator); + int random_piece_index = simgrid::xbt::random::uniform_int(0, nb_interesting_pieces - 1); int current_index = 0; for (unsigned int i = 0; i < FILE_PIECES; i++) { if (hasNotPiece(i) && remote_peer->hasPiece(i)) { @@ -478,8 +469,7 @@ int Peer::selectPieceToDownload(Connection* remote_peer) nb_interesting_pieces++; xbt_assert(nb_interesting_pieces != 0); // get a random interesting piece - std::uniform_int_distribution dist(0, nb_interesting_pieces - 1); - int random_piece_index = dist(generator); + int random_piece_index = simgrid::xbt::random::uniform_int(0, nb_interesting_pieces - 1); int current_index = 0; for (unsigned int i = 0; i < FILE_PIECES; i++) { if (hasNotPiece(i) && remote_peer->hasPiece(i) && isNotDownloadingPiece(i)) { @@ -512,8 +502,7 @@ int Peer::selectPieceToDownload(Connection* remote_peer) // get a random rarest piece int random_rarest_index = 0; if (nb_min_pieces > 0) { - std::uniform_int_distribution dist(0, nb_min_pieces - 1); - random_rarest_index = dist(generator); + random_rarest_index = simgrid::xbt::random::uniform_int(0, nb_min_pieces - 1); } for (unsigned int i = 0; i < FILE_PIECES; i++) if (pieces_count[i] == min && hasNotPiece(i) && remote_peer->hasPiece(i) && isNotDownloadingPiece(i)) { @@ -563,8 +552,7 @@ void Peer::updateChokedPeers() do { // We choose a random peer to unchoke. std::unordered_map::iterator chosen_peer_it = connected_peers.begin(); - std::uniform_int_distribution dist(0, connected_peers.size() - 1); - std::advance(chosen_peer_it, dist(generator)); + std::advance(chosen_peer_it, simgrid::xbt::random::uniform_int(0, connected_peers.size() - 1)); chosen_peer = &chosen_peer_it->second; if (not chosen_peer->interested || not chosen_peer->choked_upload) chosen_peer = nullptr;