From 16054abaae85fbbc8961b513e38e623b22c5cf66 Mon Sep 17 00:00:00 2001
From: Robert Martin-Legene <robert@nic.ar>
Date: Mon, 13 May 2019 13:07:15 -0300
Subject: [PATCH] sealerwatch da una vista del estado actual mas rapido

---
 bin/sealerwatch.pl | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/bin/sealerwatch.pl b/bin/sealerwatch.pl
index c3c77ea..12d11eb 100755
--- a/bin/sealerwatch.pl
+++ b/bin/sealerwatch.pl
@@ -329,13 +329,18 @@ chdir "$ENV{BFAHOME}" or die $!;
 my      $number                 =   shift || 'latest';
 my      $tools                  =   tools->new;
 my      %cache;
-my      $lastblock;
+my      $latestvalidblock;
 my      %signers;
+# If we started with 'latest' then subtract 100,
+# so we get an updated list of recent signers faster.
+my      $subtract               =   $number eq 'latest' ? 100 : 0;
 
 $libbfa                         =   libbfa->new();
 my      $block                  =   block->new( $libbfa )->get( $number );
 die if not defined $block;
 $number                         =   $block->number;
+my      $run_to                 =   $number;
+$number                         -=  $subtract;
 print ansi::CUP().ansi::ED();
 
 sub     determine_colour
@@ -409,14 +414,12 @@ sub     presentation_top
 while ( defined $block || sleep 1 )
 {
     my      $parent             =   undef;
-    $block                      =   block->new( $libbfa )->get( $number );
-    if ( not defined $block )
-    {
-        presentation_top( $lastblock );
-        next;
-    }
+    my      $prospect           =   block->new( $libbfa )->get( $number );
+    $block                      =   $prospect
+        if defined $prospect;
     presentation_top( $block );
-    $lastblock                  =   $block;
+    next
+        if not defined $prospect;
     $cache{$number}{'block'}    =   $block;
     $number                     =   $block->number;
     if ( exists $cache{ $number - 1 }{'block'} )
@@ -488,5 +491,6 @@ while ( defined $block || sleep 1 )
     print ansi::ED(0), ansi::CUP($maxy, 1);
     #
     $number                     =   $block->number + 1;
-    select( undef, undef,undef, 0.2 );
+    select( undef, undef,undef, 0.1 )
+        if $number >= $run_to;
 }
-- 
GitLab