diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs index 3f7ca2b..f143c32 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs | |||
@@ -208,9 +208,12 @@ namespace OpenMetaverse | |||
208 | { | 208 | { |
209 | UDPPacketBuffer buf; | 209 | UDPPacketBuffer buf; |
210 | 210 | ||
211 | if (UsePools) | 211 | // FIXME: Disabled for now as this causes issues with reused packet objects interfering with each other |
212 | buf = Pool.GetObject(); | 212 | // on Windows with m_asyncPacketHandling = true, though this has not been seen on Linux. |
213 | else | 213 | // Possibly some unexpected issue with fetching UDP data concurrently with multiple threads. Requires more investigation. |
214 | // if (UsePools) | ||
215 | // buf = Pool.GetObject(); | ||
216 | // else | ||
214 | buf = new UDPPacketBuffer(); | 217 | buf = new UDPPacketBuffer(); |
215 | 218 | ||
216 | if (IsRunningInbound) | 219 | if (IsRunningInbound) |
@@ -291,8 +294,8 @@ namespace OpenMetaverse | |||
291 | catch (ObjectDisposedException) { } | 294 | catch (ObjectDisposedException) { } |
292 | finally | 295 | finally |
293 | { | 296 | { |
294 | if (UsePools) | 297 | // if (UsePools) |
295 | Pool.ReturnObject(buffer); | 298 | // Pool.ReturnObject(buffer); |
296 | 299 | ||
297 | // Synchronous mode waits until the packet callback completes | 300 | // Synchronous mode waits until the packet callback completes |
298 | // before starting the receive to fetch another packet | 301 | // before starting the receive to fetch another packet |