summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sources/thibaut/simul.ml39
1 files changed, 20 insertions, 19 deletions
diff --git a/sources/thibaut/simul.ml b/sources/thibaut/simul.ml
index 560e6e6..a542b4f 100644
--- a/sources/thibaut/simul.ml
+++ b/sources/thibaut/simul.ml
@@ -75,7 +75,7 @@ let server_init_seed peer round duration =
let data = {
phase = SEEDING;
duration = duration;
- seed = Random.int (1 lsl 31);
+ seed = Random.int (1 lsl 29);
hmap = HashMap.empty;
included = 0;
replies = []
@@ -190,7 +190,7 @@ let seed = ref 0
let arg_list = [
"--peers", Arg.Set_int npeers, " <n> number of peers";
"--degree", Arg.Set_int degree, " <n> maximum number of neighbours";
- "--days", Arg.Set_int degree, " <n> numbers of days";
+ "--days", Arg.Set_int days, " <n> numbers of days";
"--tpm", Arg.Set_int tpm, " <n> number of ticks per minute";
"--accuracy", Arg.Set_int accuracy, " <n> number of ticks between rounds";
"--duration", Arg.Set_int duration, " <n> number of ticks during seeding";
@@ -198,34 +198,35 @@ let arg_list = [
]
let _ =
- Arg.parse (Arg.align arg_list) (fun s -> ()) "";
+ Arg.parse (Arg.align arg_list) (fun s -> ()) "Pacemaker simulator";
Random.init !seed
let peers = Array.init !npeers (fun i -> {
id = i;
- con_state = ON;
+ con_state = OFF;
neighbours = Array.make !degree None;
rounds_data = RoundMap.empty;
messages = Queue.create();
history = RoundMap.empty
})
-let nticks = !days*24*60*(!tpm)
+let nticks = (!days)*24*60*(!tpm)
let round = ref 0
-let _ = for i = 0 to (nticks-1) do
- if i mod !accuracy = 0 then begin
- incr round;
- server_init_seed peers.(0) !round !duration
- end
- else if i mod !accuracy = !duration then
- server_init_pulse peers.(0) !round;
-
- do_server peers.(0);
- for i = 1 to (!npeers-1) do
- let peer = peers.(i) in
- if peer.con_state = ON then
- do_peer peer
+let _ =
+ for i = 0 to (nticks-1) do
+ if i mod !accuracy = 0 then begin
+ incr round;
+ server_init_seed peers.(0) !round !duration
+ end
+ else if i mod !accuracy = !duration then
+ server_init_pulse peers.(0) !round;
+
+ do_server peers.(0);
+ for i = 1 to (!npeers-1) do
+ let peer = peers.(i) in
+ if peer.con_state = ON then
+ do_peer peer
+ done
done
-done