[Opensim-dev] BlockingQueue

Stefan Andersson stefan at tribalmedia.se
Wed Mar 26 08:37:29 UTC 2008


aka "The abomination that shall not be named"

Preparing for the bug-a-thon friday, I want us to come together on how we will write this out of the core; I think it will give us much better control over threading and deadlocking.

(The PROBLEM with the BlockingQueue is that threads might LOCK unknowingly because a sub-call felt like taking a peek at some blocking queue. Really really bad form.)

The BlockingQueue is used in the following contexts:

* Serving AssetRequests
  - This should be solved with a specialized ThreadStart queue that news up threads whenever something tries to add to it or if there's something in the queue, up to a specified max of concurrent requests.

* The Packet Send queue
  - This is up to discussion; how SHOULD sending work? Why do we even HAVE a global send queue? I guess that on a 'send' we should do a sweep thru the queues to see what else should be sent; and have one or several global timers sweeping thru all clients triggering sends on them? Or should we let the client thread take care of that?

* Texture and Asset downloads
  - See AssetRequests

* JVMEngine Script compiling queue
  - This is best commented on by the implementer...

I'm very motivated at doing this on friday, so give me your feedback ASAP, please.

Best,
Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20080326/9011a5b2/attachment-0001.html>


More information about the Opensim-dev mailing list