From 704cefa6bfd9bab26938b62c14b47f4803e0cd64 Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Thu, 9 Aug 2012 09:16:35 -0400 Subject: [PATCH] Don't sleep longer than necessary to meet the interval. --- 003/src/life.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/003/src/life.erl b/003/src/life.erl index ddb5115..f4b1fe5 100644 --- a/003/src/life.erl +++ b/003/src/life.erl @@ -7,7 +7,7 @@ -define(CHAR_ALIVE, 111). % "o" -define(CHAR_BAR, 45). % "-" --define(INTERVAL, 100). +-define(GEN_INTERVAL, 100). -record(state, {x :: non_neg_integer() @@ -73,7 +73,10 @@ life_loop( ,print_time = PrintTime }, - timer:sleep(?INTERVAL), + NewTimeMil = NewTime / 1000, + NextGenDelay = round(?GEN_INTERVAL - NewTimeMil), + timer:sleep(NextGenDelay), + life_loop(NewState). -- 2.20.1