Always dispatch clientResolved() on the dobjmgr thread, even if the client is

already resolved and we're being called from a non-dobjmgr thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4744 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2007-06-28 21:42:41 +00:00
parent 87c5bbcd59
commit b514ddbbf2
@@ -231,13 +231,19 @@ public class ClientManager
* {@link #releaseClientObject} when the caller is finished with the client object. * {@link #releaseClientObject} when the caller is finished with the client object.
*/ */
public synchronized void resolveClientObject ( public synchronized void resolveClientObject (
Name username, final ClientResolutionListener listener) final Name username, final ClientResolutionListener listener)
{ {
// look to see if the client object is already resolved // look to see if the client object is already resolved
ClientObject clobj = _objmap.get(username); final ClientObject clobj = _objmap.get(username);
if (clobj != null) { if (clobj != null) {
clobj.reference(); // report that the client is resolved on the dobjmgr thread to provide equivalent
listener.clientResolved(username, clobj); // behavior to the case where we actually have to do the resolution
PresentsServer.omgr.postRunnable(new Runnable() {
public void run () {
clobj.reference();
listener.clientResolved(username, clobj);
}
});
return; return;
} }