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
Handle case when active_peers is empty.
[simgrid.git]
/
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
0b03bdb
..
a9c38f8
100644
(file)
--- a/
examples/s4u/app-bittorrent/s4u_peer.cpp
+++ b/
examples/s4u/app-bittorrent/s4u_peer.cpp
@@
-546,8
+546,13
@@
void Peer::updateChokedPeers()
round_ = (round_ + 1) % 3;
Connection* chosen_peer = nullptr;
// select first active peer and remove it from the set
round_ = (round_ + 1) % 3;
Connection* chosen_peer = nullptr;
// select first active peer and remove it from the set
- Connection* choked_peer = *(active_peers.begin());
- active_peers.erase(choked_peer);
+ Connection* choked_peer;
+ if (active_peers.empty()) {
+ choked_peer = nullptr;
+ } else {
+ choked_peer = *active_peers.begin();
+ active_peers.erase(choked_peer);
+ }
/**If we are currently seeding, we unchoke the peer which has been unchoked the last time.*/
if (hasFinished()) {
/**If we are currently seeding, we unchoke the peer which has been unchoked the last time.*/
if (hasFinished()) {