| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
any need for a list, as only the last entry in it was acted on. So it now has a single NewForce m_nextVelocity , which is updated (rather than a NewForce object being created every AgentUpdate). So as well as cutting out all the adds and clearing of the list, it also removes the creation of upto 100+ new objects per second per avatar.
|
|
|
|
| |
this.
|
| |
|
| |
|
|
|
|
|
|
|
| |
from ScenePresence into ISceneViewer/SceneViewer. Currently ScenePresence "has" a ISceneViewer, although if we had a proper Node based scenegraph then it would most likely be attached directly to the nodes.
By extracting this code, it should make it easier to experiment with different ways of managing the update process. [Next step to make this module based, could be to create a SceneViewerFactoryModule]
|
| |
|
|
|
|
|
|
| |
file if it has no sections left.
|
|
|
|
|
|
|
| |
specifies an ini file.
If the ini file exists, the region will be added.
|
|
|
|
|
|
|
|
|
|
| |
be created as new style INI files.
This doesn't yet affect create region, but it does affect first starts of
OpenSim.exe
Because master avatars are slated to be replaced by estate owners, this now
allows regions to be created without any master avatar data.
|
| |
|
|
|
|
|
|
| |
definitions from the file system
|
|
|
|
| |
everyone that the so called "forces" are actually velocities.
|
|
|
|
|
|
|
| |
ScenePresence.m_forcesList, so it used the List.Clear method rather than doing a loop through the list and manually removing each item. Thanks dslake.
I also fixed the issue where the code also loops through the m_forcesList and copies each force to the ScenePresence's movementVector. Which resulted in only the last force in the list actually be acted on. As each copy overrode the last one. So now it only copies the last force in the list.
|
|
|
|
|
|
| |
it instead after the foreach as we are going through the whole
m_PendingAcks list anyhow
|
| |
|
|
|
|
|
| |
for spotting it!
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After noticing on several occasions that the thread counts
we see when running OpenSIm were bordering on the astronomical
I decided to seriously investigate.
After much poking I discovered that the problem is actually very
simple. The XEngine secition of the example ini says that the
timeout for an iden thread is in seconds, and an example value
of 60 is specified. In fact, this is actually resulting in a 60mS
idle timeout, which is not normally enough for a smart thread
to survive. I have added a multiplier to the XEngine constructor
so that the number now matches the published behavior.
|
| |
|
| |
|
|
|
|
|
| |
instantiations and object copies.
|
| |
|
|
|
|
|
| |
LLQueItem m_NeedAck queue each time.
|
|
|
|
|
|
|
|
| |
bit of GetClientInfo that is actually used seems to be userEP as part of the
OSSL osGetAgentIP() script function. Now commented are the parts where
we serialize and copy out the *entire* packet queue of the client
(locking the packet handler in the process).
|
|
|
|
|
|
|
|
|
|
|
| |
- uses Environment.TickCount for all timestamps (instead of more
costly Util.UnixTimeSinceEpoch()
- takes care of Environment.TickCount overflow (which will happens
after 24.8 days of system uptime)
- avoids instantiating List copies for each check
- gets rid of one lock() invocation
- moves calculation of loop invariant variable out of the loop itself
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
option for LLUDPServer. On windows .NET the default socket receive
buffer size is 8192 bytes, on recent linux systems it's about
111K. both value can be a bit small for an OpenSim instance serving
many clients. The socket receive buffer size can be configured via
an OpenSim.ini config option
- adds a general catch clause to LLUDPServer.OnReceivedData() to
prevent it submerging when an unexpected Exception occurs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change moves texture send processing out of the main
packet processing loop and moves it to a timer based
processing cycle.
Texture packets are sent to the client consistently over
time. The timer is discontinued whenever there are no
textures to transmit.
The behavior of the texture sending mechanism is controlled
by three variables in the LLCLient section of the config
file:
[1] TextureRequestRate (mS) determines how many times per second
texture send processing will occur. The default is 100mS.
[2] TextureSendLimit determines how many different textures
will be considered on each cycle. Textures are selected
by priority. The old mechanism specified a value of 10 for
this parameter and this is the default
[3] TextureDataLimit determines how many packets will be sent for
each of the selected textures. The old mechanism specified a
value of 5, so this is the default.
So the net effect is that TextureSendLimit*TextureDataLimit
packets will be sent every TextureRequestRate mS.
Once we have gotten a reasonable feeling for how these parameters
affect overall processing, it would be nice to autonmically manage
these values using information about the current status of the
region and network.
Note that this also resolves the pathologcal problem that
previously existed which was that a seated avatar generated very
few in-bound packets (theoretically) and would therefore be the
least able to retrieve the images being displayed by a
projector script.
|
|
|
|
|
|
|
| |
engine, caused by an "avatar infinite position" occurring under
heavy load.
- fixes "value too small" exception in ChatModule
|
|
|
|
|
|
|
| |
is only required when taing an object you don't own, now.
Fixes Mantis #3838
|
|
|
|
|
|
|
| |
This may fix the Mantii where individual prims ctrl-z to nirvana, but
it's not tested.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Also reduce limit to 40 to allow for last logon dates and titles
|
|
|
|
|
|
| |
without crashing
|
| |
|
|
|
|
|
|
| |
yet.
|
|
|
|
|
|
| |
Fixes Mantis #3831
|
|
|
|
|
|
|
|
| |
order. Thanks, Grumly57, for pointing it out.
The point of the original change was to let the more specific setting override
the less specific one, actually, I disabled the use of the less specific one.
|
| |
|
| |
|
|
|
|
|
|
| |
connector and the glue code.
|
|
|
|
| |
service implementation
|
| |
|
| |
|
|
|
|
| |
yes? Panda happy, eh?
|
| |
|
| |
|
| |
|