Aha! Fixed race condition in narya fundamentals introduced with guice (r5153). This was causing a very rare concurrent modification exception when a client would log on when another one was about to expire. The problem was revealed by the trace in the msoy log of the 2009/01/10.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5632 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -97,14 +97,15 @@ public class ClientManager
|
|||||||
/**
|
/**
|
||||||
* Constructs a client manager that will interact with the supplied connection manager.
|
* Constructs a client manager that will interact with the supplied connection manager.
|
||||||
*/
|
*/
|
||||||
@Inject public ClientManager (ReportManager repmgr, ShutdownManager shutmgr)
|
@Inject public ClientManager (
|
||||||
|
ReportManager repmgr, ShutdownManager shutmgr, PresentsDObjectMgr omgr)
|
||||||
{
|
{
|
||||||
repmgr.registerReporter(this);
|
repmgr.registerReporter(this);
|
||||||
shutmgr.registerShutdowner(this);
|
shutmgr.registerShutdowner(this);
|
||||||
|
|
||||||
// start up an interval that will check for expired clients and flush them from the bowels
|
// start up an interval that will check for expired clients and flush them from the bowels
|
||||||
// of the server
|
// of the server
|
||||||
new Interval(_omgr) {
|
new Interval(omgr) {
|
||||||
@Override
|
@Override
|
||||||
public void expired () {
|
public void expired () {
|
||||||
flushClients();
|
flushClients();
|
||||||
|
|||||||
Reference in New Issue
Block a user