Added ability to use SmartThreadPool

This commit is contained in:
Latif Khalifa
2013-07-18 20:00:11 +02:00
parent 21f82ab380
commit f1b8fcaf47
10 changed files with 248 additions and 14 deletions

View File

@@ -3943,7 +3943,7 @@ namespace OpenMetaverse
if (m_AnimationsChanged != null)
{
ThreadPool.QueueUserWorkItem(delegate(object o)
WorkPool.QueueUserWorkItem(delegate(object o)
{ OnAnimationsChanged(new AnimationsChangedEventArgs(this.SignaledAnimations)); });
}
@@ -4338,7 +4338,7 @@ namespace OpenMetaverse
return;
}
ThreadPool.QueueUserWorkItem(sync =>
WorkPool.QueueUserWorkItem(sync =>
{
using (AutoResetEvent gotMuteList = new AutoResetEvent(false))
{

View File

@@ -901,7 +901,7 @@ namespace OpenMetaverse
{
Logger.Log("UploadBakedTexture not available, falling back to UDP method", Helpers.LogLevel.Info, Client);
ThreadPool.QueueUserWorkItem(
WorkPool.QueueUserWorkItem(
delegate(object o)
{
UUID transactionID = UUID.Random();

View File

@@ -144,7 +144,7 @@ namespace OpenMetaverse
wrapper.Callback = callback.Callback;
wrapper.Packet = packet;
wrapper.Simulator = simulator;
ThreadPool.QueueUserWorkItem(ThreadPoolDelegate, wrapper);
WorkPool.QueueUserWorkItem(ThreadPoolDelegate, wrapper);
}
else
{
@@ -164,7 +164,7 @@ namespace OpenMetaverse
wrapper.Callback = callback.Callback;
wrapper.Packet = packet;
wrapper.Simulator = simulator;
ThreadPool.QueueUserWorkItem(ThreadPoolDelegate, wrapper);
WorkPool.QueueUserWorkItem(ThreadPoolDelegate, wrapper);
}
else
{
@@ -329,7 +329,7 @@ namespace OpenMetaverse
wrapper.CapsEvent = capsEvent;
wrapper.Message = message;
wrapper.Simulator = simulator;
ThreadPool.QueueUserWorkItem(_ThreadPoolCallback, wrapper);
WorkPool.QueueUserWorkItem(_ThreadPoolCallback, wrapper);
}
}
@@ -341,7 +341,7 @@ namespace OpenMetaverse
wrapper.CapsEvent = capsEvent;
wrapper.Message = message;
wrapper.Simulator = simulator;
ThreadPool.QueueUserWorkItem(_ThreadPoolCallback, wrapper);
WorkPool.QueueUserWorkItem(_ThreadPoolCallback, wrapper);
specialHandler = true;
}

View File

@@ -108,6 +108,9 @@ namespace OpenMetaverse
/// </summary>
public GridClient()
{
// Initialise ThreadPool
WorkPool.Init(true);
// These are order-dependant
Network = new NetworkManager(this);
Settings = new Settings(this);

View File

@@ -838,7 +838,7 @@ namespace OpenMetaverse
if (m_CoarseLocationUpdate != null)
{
ThreadPool.QueueUserWorkItem(delegate(object o)
WorkPool.QueueUserWorkItem(delegate(object o)
{ OnCoarseLocationUpdate(new CoarseLocationUpdateEventArgs(e.Simulator, newEntries, removedEntries)); });
}
}

View File

@@ -2101,7 +2101,7 @@ namespace OpenMetaverse
EventHandler<PrimEventArgs> handler = m_ObjectUpdate;
if (handler != null)
{
ThreadPool.QueueUserWorkItem(delegate(object o)
WorkPool.QueueUserWorkItem(delegate(object o)
{ handler(this, new PrimEventArgs(simulator, prim, update.RegionData.TimeDilation, isNewObject, attachment)); });
}
@@ -2320,7 +2320,7 @@ namespace OpenMetaverse
EventHandler<TerseObjectUpdateEventArgs> handler = m_TerseObjectUpdate;
if (handler != null)
{
ThreadPool.QueueUserWorkItem(delegate(object o)
WorkPool.QueueUserWorkItem(delegate(object o)
{ handler(this, new TerseObjectUpdateEventArgs(simulator, obj, update, terse.RegionData.TimeDilation)); });
}

View File

@@ -515,7 +515,7 @@ namespace OpenMetaverse
nextTask.RequestSlot = slot;
//Logger.DebugLog(String.Format("Sending Worker thread new download request {0}", slot));
ThreadPool.QueueUserWorkItem(TextureRequestDoWork, nextTask);
WorkPool.QueueUserWorkItem(TextureRequestDoWork, nextTask);
continue;
}
}