void AsyncListManager::init_list (void) { CORBA::ULong len = static_cast<CORBA::ULong> (this->repo_->servers ().current_size ()); Locator_Repository::SIMap::ENTRY* entry = 0; Locator_Repository::SIMap::CONST_ITERATOR it (this->repo_->servers ()); this->server_list_.length (len); this->waiters_ = 0; for (CORBA::ULong i = 0; i < len; i++) { it.next (entry); it.advance (); Server_Info_Ptr info = entry->int_id_; info->setImRInfo (&this->server_list_[i]); if (this->pinger_ != 0) { ListLiveListener *l = 0; ACE_NEW (l, ListLiveListener (info->ping_id (), info->pid, i, this, *this->pinger_)); LiveListener_ptr llp (l); if (!l->start ()) { this->server_list_[i].activeStatus = ImplementationRepository::ACTIVE_NO; l->cancel (); } else { if (!evaluate_status (i, l->status(), info->pid)) { this->waiters_++; } else { l->cancel (); } } } } if (ImR_Locator_i::debug() > 4) { ORBSVCS_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) AsyncListManager(%@)::init_list, %d waiters") ACE_TEXT (" out of %d regsitered servers\n"), this, this->waiters_, len)); } }