fix missing fields in rbn_cache, add timings
[spider.git] / perl / DXUtil.pm
index f7e52c9a92cb727e8c5431c4f9cd4d2d63e3d5e7..7d9e63a97b89dde5c9e7cf4e90d36eda0a1cd169 100644 (file)
@@ -27,7 +27,7 @@ require Exporter;
              print_all_fields cltounix unpad is_callsign is_latlong
                         is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem
                         is_prefix dd is_ipaddr $pi $d2r $r2d localdata localdata_mv
-                        diffms _diffms difft parraydifft is_ztime
+                        diffms _diffms _diffus difft parraydifft is_ztime
             );
 
 
@@ -514,6 +514,16 @@ sub _diffms
        return $b - $a;
 }
 
+# and in microseconds
+sub _diffus
+{
+       my $ta = shift;
+       my $tb = shift || [gettimeofday];
+       my $a = int($ta->[0] * 1000000) + int($ta->[1]); 
+       my $b = int($tb->[0] * 1000000) + int($tb->[1]);
+       return $b - $a;
+}
+
 sub diffms
 {
        my $call = shift;
@@ -539,7 +549,7 @@ sub difft
        if (ref $b eq 'ARRAY') {
                $t = $b->[1] - $b->[0];
        } else {
-               if ($adds >= $b) {
+               if ($adds && $adds >= $b) {
                        $t = $adds - $b;
                        $adds = shift;
                } else {