summaryrefslogtreecommitdiff
path: root/apt-pkg/acquire.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/acquire.cc')
-rw-r--r--apt-pkg/acquire.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index e197037db..734f5e7ab 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire.cc,v 1.35 1999/06/06 06:58:36 jgg Exp $
+// $Id: acquire.cc,v 1.36 1999/06/13 05:06:40 jgg Exp $
/* ######################################################################
Acquire - File Acquiration
@@ -275,7 +275,7 @@ void pkgAcquire::RunFds(fd_set *RSet,fd_set *WSet)
/* This runs the queues. It manages a select loop for all of the
Worker tasks. The workers interact with the queues and items to
manage the actual fetch. */
-bool pkgAcquire::Run()
+pkgAcquire::RunResult pkgAcquire::Run()
{
Running = true;
@@ -285,6 +285,8 @@ bool pkgAcquire::Run()
if (Log != 0)
Log->Start();
+ bool WasCancelled = false;
+
// Run till all things have been acquired
struct timeval tv;
tv.tv_sec = 0;
@@ -321,8 +323,11 @@ bool pkgAcquire::Run()
tv.tv_usec = 500000;
for (Worker *I = Workers; I != 0; I = I->NextAcquire)
I->Pulse();
- if (Log != 0)
- Log->Pulse(this);
+ if (Log != 0 && Log->Pulse(this) == false)
+ {
+ WasCancelled = true;
+ break;
+ }
}
}
@@ -338,7 +343,11 @@ bool pkgAcquire::Run()
for (Item **I = Items.begin(); I != Items.end(); I++)
(*I)->Finished();
- return !_error->PendingError();
+ if (_error->PendingError())
+ return Failed;
+ if (WasCancelled)
+ return Cancelled;
+ return Continue;
}
/*}}}*/
// Acquire::Bump - Called when an item is dequeued /*{{{*/
@@ -675,7 +684,7 @@ pkgAcquireStatus::pkgAcquireStatus()
/* This computes some internal state variables for the derived classes to
use. It generates the current downloaded bytes and total bytes to download
as well as the current CPS estimate. */
-void pkgAcquireStatus::Pulse(pkgAcquire *Owner)
+bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
{
TotalBytes = 0;
CurrentBytes = 0;
@@ -742,6 +751,8 @@ void pkgAcquireStatus::Pulse(pkgAcquire *Owner)
ElapsedTime = (unsigned long)Delta;
Time = NewTime;
}
+
+ return true;
}
/*}}}*/
// AcquireStatus::Start - Called when the download is started /*{{{*/