… | |
… | |
74 | } |
74 | } |
75 | |
75 | |
76 | sub _prefetch { |
76 | sub _prefetch { |
77 | $PREFETCHING = 1; |
77 | $PREFETCHING = 1; |
78 | |
78 | |
79 | while (@PREFETCH) { |
79 | # while (@PREFETCH) { |
80 | my ($type, $path, $cb) = @{ shift @PREFETCH }; |
80 | # my ($type, $path, $cb) = @{ shift @PREFETCH }; |
81 | |
81 | # |
82 | my $NOW = Time::HiRes::time; |
82 | # my $NOW = Time::HiRes::time; |
83 | $cb->(), next if $FILE_TIMEOUT{$path} > $NOW; |
83 | # $cb->(), next if $FILE_TIMEOUT{$path} > $NOW; |
84 | $FILE_TIMEOUT{$path} = $NOW + 60 + rand 60; |
84 | # $FILE_TIMEOUT{$path} = $NOW + 60 + rand 60; |
85 | |
85 | # |
86 | if ($type eq "map") { |
86 | # if ($type eq "map") { |
87 | if (my $map = cf::map::has_been_loaded $path) { |
87 | # if (my $map = cf::map::find $path) { |
88 | $cb->(), next if $map->in_memory == cf::MAP_IN_MEMORY; |
88 | # $cb->(), next if $map->in_memory == cf::MAP_IN_MEMORY; |
89 | |
89 | # |
90 | prefetch file => $map->tmpname |
90 | # prefetch file => $map->tmpname |
91 | if $map->in_memory == cf::MAP_SWAPPED; |
91 | # if $map->in_memory == cf::MAP_SWAPPED; |
92 | } |
92 | # } |
93 | } |
93 | # } |
94 | |
94 | # |
95 | load_file $path, $cb; |
95 | # load_file $path, $cb; |
96 | return; |
96 | # return; |
97 | } |
97 | # } |
98 | |
98 | |
99 | $PREFETCHING = 0; |
99 | $PREFETCHING = 0; |
100 | } |
100 | } |
101 | |
101 | |
102 | my %MAP_EXITS; |
102 | my %MAP_EXITS; |