Delay notifying the client about the under ass rug yanking until we're in finishResolved in case UserChangeListener.changeReported performs a long operation off the omgr thread and allows the client to respond before _clobj has actually been switched
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4997 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -24,7 +24,6 @@ package com.threerings.presents.server;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
@@ -204,10 +203,6 @@ public class PresentsClient
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// let the client know that the rug has been yanked out from under their ass
|
|
||||||
Object[] args = new Object[] { Integer.valueOf(clobj.getOid()) };
|
|
||||||
_clobj.postMessage(ClientObject.CLOBJ_CHANGED, args);
|
|
||||||
|
|
||||||
// call down to any derived classes
|
// call down to any derived classes
|
||||||
clientObjectWillChange(_clobj, clobj);
|
clientObjectWillChange(_clobj, clobj);
|
||||||
|
|
||||||
@@ -231,6 +226,10 @@ public class PresentsClient
|
|||||||
*/
|
*/
|
||||||
protected void finishResolved (Name username, ClientObject clobj)
|
protected void finishResolved (Name username, ClientObject clobj)
|
||||||
{
|
{
|
||||||
|
// let the client know that the rug has been yanked out from under their ass
|
||||||
|
Object[] args = new Object[] { Integer.valueOf(clobj.getOid()) };
|
||||||
|
_clobj.postMessage(ClientObject.CLOBJ_CHANGED, args);
|
||||||
|
|
||||||
// release our old client object; this will destroy it
|
// release our old client object; this will destroy it
|
||||||
_cmgr.releaseClientObject(_username);
|
_cmgr.releaseClientObject(_username);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user