A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Harden msg/app-bittorrent for parallel executions.
[simgrid.git]
/
examples
/
c
/
app-bittorrent
/
bittorrent-peer.c
diff --git
a/examples/c/app-bittorrent/bittorrent-peer.c
b/examples/c/app-bittorrent/bittorrent-peer.c
index
55e2ed2
..
e66b37c
100644
(file)
--- a/
examples/c/app-bittorrent/bittorrent-peer.c
+++ b/
examples/c/app-bittorrent/bittorrent-peer.c
@@
-38,6
+38,7
@@
static peer_t peer_init(int id, int seed)
{
peer_t peer = xbt_new(s_peer_t, 1);
peer->id = id;
+ peer->seedp = sg_host_get_data(sg_host_self());
char mailbox_name[MAILBOX_SIZE];
snprintf(mailbox_name, MAILBOX_SIZE - 1, "%d", id);
@@
-536,7
+537,7
@@
int select_piece_to_download(const_peer_t peer, const_connection_t remote_peer)
}
xbt_assert(nb_interesting_pieces != 0);
// get a random interesting piece
- int random_piece_index = rand
(
) % nb_interesting_pieces;
+ int random_piece_index = rand
_r(peer->seedp
) % nb_interesting_pieces;
int current_index = 0;
for (unsigned int i = 0; i < FILE_PIECES; i++) {
if (peer_has_not_piece(peer, i) && connection_has_piece(remote_peer, i)) {
@@
-562,7
+563,7
@@
int select_piece_to_download(const_peer_t peer, const_connection_t remote_peer)
}
xbt_assert(nb_interesting_pieces != 0);
// get a random interesting piece
- int random_piece_index = rand
(
) % nb_interesting_pieces;
+ int random_piece_index = rand
_r(peer->seedp
) % nb_interesting_pieces;
int current_index = 0;
for (unsigned int i = 0; i < FILE_PIECES; i++) {
if (peer_has_not_piece(peer, i) && connection_has_piece(remote_peer, i) &&
@@
-597,7
+598,7
@@
int select_piece_to_download(const_peer_t peer, const_connection_t remote_peer)
// get a random rarest piece
int random_rarest_index = 0;
if (nb_min_pieces > 0) {
- random_rarest_index = rand
(
) % nb_min_pieces;
+ random_rarest_index = rand
_r(peer->seedp
) % nb_min_pieces;
}
for (unsigned int i = 0; i < FILE_PIECES; i++) {
if (peer->pieces_count[i] == min && peer_has_not_piece(peer, i) && connection_has_piece(remote_peer, i) &&
@@
-655,7
+656,7
@@
void update_choked_peers(peer_t peer)
// We choose a random peer to unchoke.
int id_chosen = 0;
if (xbt_dict_length(peer->connected_peers) > 0) {
- id_chosen = rand
(
) % xbt_dict_length(peer->connected_peers);
+ id_chosen = rand
_r(peer->seedp
) % xbt_dict_length(peer->connected_peers);
}
int i = 0;
connection_t connection;