fWorkers
if (!fWorkers.AddItem(worker)) {
fWorkers.RemoveItem(worker);
while (fWorkers.CountItems() > workersWanted) {
= fWorkers.RemoveItemAt(fWorkers.CountItems() - 1);
IMAPConnectionWorker* worker = fWorkers.ItemAt(index);
index = (index + 1) % fWorkers.CountItems();
fWorkers.RemoveItem(worker);
if (fWorkers.IsEmpty()) {
if (!fWorkers.AddItem(worker)) {
fWorkers.ItemAt(0)->EnqueueCheckSubscribedFolders();
for (int32 i = 0; i < fWorkers.CountItems(); i++) {
fWorkers.ItemAt(i)->EnqueueCheckMailboxes();
for (int32 i = 0; i < fWorkers.CountItems(); i++) {
threads.push_back(fWorkers.ItemAt(i)->Thread());
fWorkers.ItemAt(i)->Quit();
if (newFolders.IsEmpty() && fWorkers.CountItems() == workersWanted) {
for (int32 i = 0; i < fWorkers.CountItems(); i++) {
fWorkers.ItemAt(i)->RemoveAllMailboxes();
while (fWorkers.CountItems() < workersWanted) {
BObjectList<IMAPConnectionWorker> fWorkers;