Remove the kill record. Core has removed it long ago and it really does more harm than good these days
							parent
							
								
									cc903992dd
								
							
						
					
					
						commit
						4b3cb91ce8
					
				|  | @ -346,7 +346,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|         /// All manipulation of this set has to occur under an m_entityUpdates.SyncRoot lock | ||||
|         /// | ||||
|         /// </value> | ||||
|         protected HashSet<uint> m_killRecord; | ||||
| //        protected HashSet<uint> m_killRecord; | ||||
| 
 | ||||
| //        protected HashSet<uint> m_attachmentsSent; | ||||
| 
 | ||||
|  | @ -472,7 +472,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|             m_entityUpdates = new PriorityQueue(m_scene.Entities.Count); | ||||
|             m_entityProps = new PriorityQueue(m_scene.Entities.Count); | ||||
|             m_fullUpdateDataBlocksBuilder = new List<ObjectUpdatePacket.ObjectDataBlock>(); | ||||
|             m_killRecord = new HashSet<uint>(); | ||||
| //            m_killRecord = new HashSet<uint>(); | ||||
| //            m_attachmentsSent = new HashSet<uint>(); | ||||
| 
 | ||||
|             m_assetService = m_scene.RequestModuleInterface<IAssetService>(); | ||||
|  | @ -1574,17 +1574,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                 // We MUST lock for both manipulating the kill record and sending the packet, in order to avoid a race | ||||
|                 // condition where a kill can be processed before an out-of-date update for the same object. | ||||
|                 // ProcessEntityUpdates() also takes the m_killRecord lock. | ||||
|                 lock (m_killRecord) | ||||
|                 { | ||||
|                     foreach (uint localID in localIDs) | ||||
|                         m_killRecord.Add(localID); | ||||
| //                lock (m_killRecord) | ||||
| //                { | ||||
| //                    foreach (uint localID in localIDs) | ||||
| //                        m_killRecord.Add(localID); | ||||
| 
 | ||||
|                     // The throttle queue used here must match that being used for updates.  Otherwise, there is a | ||||
|                     // chance that a kill packet put on a separate queue will be sent to the client before an existing | ||||
|                     // update packet on another queue.  Receiving updates after kills results in unowned and undeletable | ||||
|                     // scene objects in a viewer until that viewer is relogged in. | ||||
|                     OutPacket(kill, ThrottleOutPacketType.Task); | ||||
|                 } | ||||
| //                } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | @ -3802,11 +3802,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                         // If the object is an attachment we don't want it to be in the kill | ||||
|                         // record. Else attaching from inworld and subsequently dropping | ||||
|                         // it will no longer work. | ||||
|                         lock (m_killRecord) | ||||
|                         { | ||||
|                             m_killRecord.Remove(part.LocalId); | ||||
|                             m_killRecord.Remove(part.ParentGroup.RootPart.LocalId); | ||||
|                         } | ||||
| //                        lock (m_killRecord) | ||||
| //                        { | ||||
| //                            m_killRecord.Remove(part.LocalId); | ||||
| //                            m_killRecord.Remove(part.ParentGroup.RootPart.LocalId); | ||||
| //                        } | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|  | @ -3822,13 +3822,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                         // after the root prim has been deleted. | ||||
|                         // | ||||
|                         // We ignore this for attachments because attaching something from inworld breaks unless we do. | ||||
|                         lock (m_killRecord) | ||||
|                         { | ||||
|                             if (m_killRecord.Contains(part.LocalId)) | ||||
|                                 continue; | ||||
|                             if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId)) | ||||
|                                 continue; | ||||
|                         } | ||||
| //                        lock (m_killRecord) | ||||
| //                        { | ||||
| //                            if (m_killRecord.Contains(part.LocalId)) | ||||
| //                                continue; | ||||
| //                            if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId)) | ||||
| //                                continue; | ||||
| //                        } | ||||
|                     } | ||||
| 
 | ||||
|                     if (part.ParentGroup.IsAttachment && m_disableFacelights) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Melanie
						Melanie