@@ -676,6 +676,7 @@ sub plan_search ($$$$) {
my $try_time= 0;
my $confirmedok= 0;
my $share_reuse= 0;
+ my $last_eshare;
for (;;) {
my $req= $requestlist->[$reqix];
@@ -715,6 +716,10 @@ sub plan_search ($$$$) {
# this period is entirely after the proposed slot;
# so no need to check this or any later periods
+ $last_eshare = $startevt->{
+ $startevt->{Type} eq 'Unshare' ? 'PreviousShare' : 'Share'
+ };
+
next PERIOD if $endevt->{Time} <= $try_time;
# this period is entirely before the proposed slot;
# it doesn't overlap, but must check subsequent periods
@@ -743,9 +748,10 @@ sub plan_search ($$$$) {
" try=$try_time confirmed=$confirmedok reuse=$share_reuse");
$confirmedok++;
- $share_reuse++ if defined $share_wear;
+ $share_reuse++ if $last_eshare and $share_compat_ok->($last_eshare);
$reqix++;
$reqix %= @$requestlist;
+ undef $last_eshare;
last if $confirmedok==@$requestlist;
}