OpenSim.Region.Framework.Scenes.AsyncInventorySender.ProcessQueue C# (CSharp) Method

ProcessQueue() protected method

Process the queue of fetches
protected ProcessQueue ( ) : void
return void
        protected void ProcessQueue()
        {
            FetchHolder fh = null;

            while (true)
            {
                lock (m_fetchHolder)
                {
//                    m_log.DebugFormat("[ASYNC INVENTORY SENDER]: {0} items left to process", m_fetchHolder.Count);

                    if (m_fetchHolder.Count == 0)
                    {
                        m_processing = false;
                        return;
                    }
                    else
                    {
                        fh = m_fetchHolder.Dequeue();
                    }
                }

                if (fh.Client.IsLoggingOut)
                    continue;

//                m_log.DebugFormat(
//                    "[ASYNC INVENTORY SENDER]: Handling request from {0} for {1} on queue", fh.Client.Name, fh.ItemID);

                InventoryItemBase item = new InventoryItemBase(fh.ItemID, fh.Client.AgentId);
                item = m_scene.InventoryService.GetItem(item);
    
                if (item != null)
                    fh.Client.SendInventoryItemDetails(item.Owner, item);
    
                 // TODO: Possibly log any failure
            }
        }
    }