diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index ee28914..6f00957 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -509,19 +509,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
509 | /// </summary> | 509 | /// </summary> |
510 | public void Close() | 510 | public void Close() |
511 | { | 511 | { |
512 | Close(true); | 512 | Close(true, false); |
513 | } | 513 | } |
514 | 514 | ||
515 | /// <summary> | 515 | public void Close(bool sendStop, bool force) |
516 | /// Shut down the client view | ||
517 | /// </summary> | ||
518 | public void Close(bool sendStop) | ||
519 | { | 516 | { |
520 | // We lock here to prevent race conditions between two threads calling close simultaneously (e.g. | 517 | // We lock here to prevent race conditions between two threads calling close simultaneously (e.g. |
521 | // a simultaneous relog just as a client is being closed out due to no packet ack from the old connection. | 518 | // a simultaneous relog just as a client is being closed out due to no packet ack from the old connection. |
522 | lock (CloseSyncLock) | 519 | lock (CloseSyncLock) |
523 | { | 520 | { |
524 | if (!IsActive) | 521 | // We still perform a force close inside the sync lock since this is intended to attempt close where |
522 | // there is some unidentified connection problem, not where we have issues due to deadlock | ||
523 | if (!IsActive && !force) | ||
525 | return; | 524 | return; |
526 | 525 | ||
527 | IsActive = false; | 526 | IsActive = false; |
@@ -4534,7 +4533,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4534 | { | 4533 | { |
4535 | returnblock[j] = new EstateOwnerMessagePacket.ParamListBlock(); | 4534 | returnblock[j] = new EstateOwnerMessagePacket.ParamListBlock(); |
4536 | } | 4535 | } |
4537 | j = 0; | 4536 | j = 0; |
4538 | 4537 | ||
4539 | returnblock[j].Parameter = Utils.StringToBytes(estateID.ToString()); j++; | 4538 | returnblock[j].Parameter = Utils.StringToBytes(estateID.ToString()); j++; |
4540 | returnblock[j].Parameter = Utils.StringToBytes(((int)Constants.EstateAccessCodex.EstateBans).ToString()); j++; | 4539 | returnblock[j].Parameter = Utils.StringToBytes(((int)Constants.EstateAccessCodex.EstateBans).ToString()); j++; |
@@ -12193,7 +12192,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12193 | { | 12192 | { |
12194 | Kick(reason); | 12193 | Kick(reason); |
12195 | Thread.Sleep(1000); | 12194 | Thread.Sleep(1000); |
12196 | Close(); | 12195 | Disconnect(); |
12197 | } | 12196 | } |
12198 | 12197 | ||
12199 | public void Disconnect() | 12198 | public void Disconnect() |