|
|
@@ -1,6 +1,6 @@
|
|
|
// -*- mode: cpp; mode: fold -*-
|
|
|
// Description /*{{{*/
|
|
|
-// $Id: acquire.cc,v 1.7 1998/11/01 05:27:34 jgg Exp $
|
|
|
+// $Id: acquire.cc,v 1.8 1998/11/05 07:21:40 jgg Exp $
|
|
|
/* ######################################################################
|
|
|
|
|
|
Acquire - File Acquiration
|
|
|
@@ -143,6 +143,8 @@ void pkgAcquire::Enqueue(Item *Itm,string URI,string Description)
|
|
|
if (Running == true)
|
|
|
I->Startup();
|
|
|
}
|
|
|
+
|
|
|
+ Itm->Status = Item::StatIdle;
|
|
|
|
|
|
// Queue it into the named queue
|
|
|
I->Enqueue(Itm,URI,Description);
|
|
|
@@ -164,12 +166,14 @@ void pkgAcquire::Enqueue(Item *Itm,string URI,string Description)
|
|
|
void pkgAcquire::Dequeue(Item *Itm)
|
|
|
{
|
|
|
Queue *I = Queues;
|
|
|
+ bool Res = false;
|
|
|
for (; I != 0; I = I->Next)
|
|
|
- I->Dequeue(Itm);
|
|
|
+ Res |= I->Dequeue(Itm);
|
|
|
|
|
|
if (Debug == true)
|
|
|
clog << "Dequeuing " << Itm->DestFile << endl;
|
|
|
- ToFetch--;
|
|
|
+ if (Res == true)
|
|
|
+ ToFetch--;
|
|
|
}
|
|
|
/*}}}*/
|
|
|
// Acquire::QueueName - Return the name of the queue for this URI /*{{{*/
|
|
|
@@ -371,9 +375,11 @@ void pkgAcquire::Queue::Enqueue(Item *Owner,string URI,string Description)
|
|
|
/*}}}*/
|
|
|
// Queue::Dequeue - Remove an item from the queue /*{{{*/
|
|
|
// ---------------------------------------------------------------------
|
|
|
-/* */
|
|
|
-void pkgAcquire::Queue::Dequeue(Item *Owner)
|
|
|
+/* We return true if we hit something*/
|
|
|
+bool pkgAcquire::Queue::Dequeue(Item *Owner)
|
|
|
{
|
|
|
+ bool Res = false;
|
|
|
+
|
|
|
QItem **I = &Items;
|
|
|
for (; *I != 0;)
|
|
|
{
|
|
|
@@ -383,10 +389,13 @@ void pkgAcquire::Queue::Dequeue(Item *Owner)
|
|
|
*I = (*I)->Next;
|
|
|
Owner->QueueCounter--;
|
|
|
delete Jnk;
|
|
|
+ Res = true;
|
|
|
}
|
|
|
else
|
|
|
I = &(*I)->Next;
|
|
|
}
|
|
|
+
|
|
|
+ return Res;
|
|
|
}
|
|
|
/*}}}*/
|
|
|
// Queue::Startup - Start the worker processes /*{{{*/
|
|
|
@@ -463,6 +472,8 @@ bool pkgAcquire::Queue::Cycle()
|
|
|
if (Items == 0 || Workers == 0)
|
|
|
return true;
|
|
|
|
|
|
+ cout << "Cylce for " << Name << endl;
|
|
|
+
|
|
|
// Look for a queable item
|
|
|
QItem *I = Items;
|
|
|
for (; I != 0; I = I->Next)
|
|
|
@@ -475,6 +486,7 @@ bool pkgAcquire::Queue::Cycle()
|
|
|
|
|
|
I->Worker = Workers;
|
|
|
I->Owner->Status = pkgAcquire::Item::StatFetching;
|
|
|
+ cout << "Item has been queued!" << endl;
|
|
|
return Workers->QueueItem(I);
|
|
|
}
|
|
|
/*}}}*/
|