mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-17 10:41:26 +00:00
- Better fix for removing virtual targets.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2239 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -1023,21 +1023,28 @@ sub removeVirtualTarget {
|
||||
|
||||
my $sessions = $self->sessions($driver, $target);
|
||||
|
||||
my $can_close;
|
||||
my %can_close;
|
||||
foreach my $session (keys %{$sessions}) {
|
||||
if (defined($$sessions{$session}->{'force_close'})) {
|
||||
$can_close = TRUE;
|
||||
$can_close{$session}++;
|
||||
my $rc = closeSession($driver, $target, $session);
|
||||
return $rc if ($rc);
|
||||
}
|
||||
}
|
||||
|
||||
if ($can_close) {
|
||||
if (scalar keys %can_close) {
|
||||
my $has_sessions = 1;
|
||||
my $now = time();
|
||||
while ($has_sessions && (($now + $TIMEOUT) > time())) {
|
||||
$sessions = $self->sessions($driver, $target);
|
||||
$has_sessions = scalar keys %{$sessions};
|
||||
|
||||
foreach my $session (keys %can_close) {
|
||||
if (!defined($$sessions{$session})) {
|
||||
delete $can_close{$session};
|
||||
}
|
||||
}
|
||||
|
||||
$has_sessions = scalar keys %can_close;
|
||||
sleep 1 if ($has_sessions);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user