| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
OutPacket() must be called within the m_killRecord lock. Otherwise the following event sequence is possible
1) LLClientView.ProcessEntityUpdates() passes the kill record check for a particular part suspends before OutPacket()
2) Another thread calls LLClientView.SendKillObject() to delete the same part and modifies the kill record
3) The same thread places the kill packet on the Task queue.
4) The earlier thread resumes and places the update packet on the Task queue after the kill packet.
This results in a ghost part in the sim that only goes away after client relog.
This commit also removes the unnecessary m_entityUpdates.SyncRoot locking in SendKillObject.
|
|
|
|
| |
packet per prim. More to come as we change to make use of this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UpdateFlag is now referenced/used only within SOP and SOG. Outsiders are
using ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule on
SOP consistently now. Also started working toward eliminating those
calls to ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule
from outside SOP in favor of just setting properties on SOP and let SOP
decide if an update should be scheduled. This consolidates the update
policy within SOP and the client rather than everywhere that makes
changes to SOP. Some places forget to call update while others call it
multiple times, "just to be sure".
UpdateFlag and Schedule*Update will both be made private shortly.
UpdateFlag is intended to be transient and internal to SOP so it has
been removed from XML serializer for SOPs.
|
|
|
|
| |
SceneGraph property.
|
|
|
|
|
| |
setting position at the same time as taint appears to undermine the whole purpose of taint
testing doesn't reveal any obvious regressions in doing this
|
|
|
|
|
|
| |
passed a null node reference.
Addresses worst aspect of http://opensimulator.org/mantis/view.php?id=5752
|
|
|
|
|
|
|
|
|
| |
of the other way around.
This is necessary so that code in HttpServer can use framework facilities such as the thread watchdog for monitoring purposes.
Doing this shuffle meant that MainServer was moved into OpenSim/Framework/Servers
Also had to make OpenSim.Framework.Console rely on OpenSim.Framework rather than the other way around since it in turn relies on HttpServer
MainConsole and some new interfaces had to be moved into OpenSim/Framework to allow this. This can be reverted if parts of OpenSim.Framework stop relying on console presence (cheifly RegionInfo)
|
|
|
|
|
|
| |
BaseHttpServer.RemovePollServerHTTPHandler() that stopped existing code in ClientClosed() from actually tearing down the poll handler
Actually doing the tear down appear to have no ill effects with region crossing and teleport.
|
| |
|
|
|
|
| |
registers an http poll
|
|
|
|
| |
without a getter
|
| |
|
|
|
|
| |
sends entity updates (including presence ones), not just prims.
|
| |
|
| |
|
|
|
|
| |
Code drift means that most of this stuff doesn't compile but the structure is still useful.
|
|
|
|
| |
instrument to see packet expiry and received acks
|
| |
|
|\ |
|
| | |
|
|/
|
|
| |
This appears to be code clutter since the code that uses this has long gone.
|
| |
|
|
|
|
| |
This is moved into ScenePresence for now as a general facility
|
|
|
|
|
|
| |
reflect what it actually does
This also makes it consistent with some other methods that send data to the client.
|
|
|
|
| |
It's never possible for SOG to have no RootPart, except in the first few picosends of the big bang when it's pulled from region persistence or deserialized
|
|
|
|
|
| |
The only times when ParentGroup might be null is during regression tests (which might not be a valid thing) and when scene objects are being constructed from the database.
At all other times it's not possible for a SOP not to have a SOG parent.
|
|
|
|
|
|
|
|
|
| |
been attachments were sending their old attachment values to the client.
The root part state is the canonical value, so always send that instead.
Sending conflicting attachments states for non-root parts of a rezzed object is enough to crash the client.
Fixes http://opensimulator.org/mantis/view.php?id=5664.
Many thanks to mewtwo0641 for some fantastic qa work on this one.
|
|
|
|
|
| |
Assets have to be marked non-local as well as non-temporary to persist. This is now done.
Hopefully addresses http://opensimulator.org/mantis/view.php?id=5660
|
|
|
|
| |
pointless duplication of identical values
|
|
|
|
|
|
| |
both non-phantom and flagged as physical.
As per Melanie
|
| |
|
|
|
|
| |
addition to the hardcoded ones.
|
|
|
|
|
|
|
| |
removed from the scene.
This is done by introducing a PresenceType enum into ScenePresence which currently has two values, User and Npc.
This seems better than a SaveAttachments flag in terms of code comprehension, though I'm still slightly uneasy about introducing these semantics to core objects
|
| |
|
| |
|
|
|
|
|
| |
this is to allow walking on prims. it will be up to the script writer to be sure that there is a continuous path.
currently implemented in osNpcMoveToTarget(), but none of this is final.
|
| |
|
|
|
|
| |
agent
|
| |
|
| |
|
|
|
|
|
|
|
| |
This now works again except that it requires a click or avatar mvmt to get going
This is because the ScenePresence.HandleAgentUpdate() method doesn't trigger until the client does something significant, at which point autopilot takes over.
Even clicking is enough to trigger.
This will be improved presently.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
whole linkset.
However, what happens now is that undo just doesn't do anything when the root prim is selected on its own. This requires more code than just fiddling with undo states.
|
|
|
|
| |
undo resize, rotation and position still needs fixing when only editing root prim of a linkset
|
|
|
|
|
|
| |
This involves implementing a boolean in UndoState to signal whether the undo needs to be done for an entire group/linkset or just a single prim
Resizing individual components of linksets is still dodgy.
Resizing still has to be down twice, since for some reason the client is sending two multiobjectupdate packets on every resize except the very first. This applies to single prims and linksets. Need to look into this.
|
|
|
|
|
|
|
| |
Undo rotation and position appear to be working.
Resizing a single prim appears to be working, though the undo has to be done twice.
Resizing a group of prims still does not work properly - possibly because in the UndoState we don't store a knowledge of when we're resizing a whole group rather than individual prims.
This needs to be addressed.
|
| |
|