exact same API. So if you ship with GC instead of Guava, nothing will break.
Eventually we'll want to ship with Guava instead of GC so that we can use
Guava-specific methods, but projects can make that switch at their leisure.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6044 542714f4-19e9-0310-aa3c-eee0fc999fb1
exact same API. So if you ship with GC instead of Guava, nothing will break.
Eventually we'll want to ship with Guava instead of GC so that we can use
Guava-specific methods, but projects can make that switch at their leisure.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6043 542714f4-19e9-0310-aa3c-eee0fc999fb1
It could be more effecient w/r/t generating garbage.
I would have just replaced readUTF() in ObjectInputStream and switch
us to unmodified-UTF8 for all streaming needs. Wouldn't that be
simpler?
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6041 542714f4-19e9-0310-aa3c-eee0fc999fb1
At least call super() in a finally block, but I'll see if this can
be cleaned.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6039 542714f4-19e9-0310-aa3c-eee0fc999fb1
constructor and then never use it. This is almost a noop, except that
ClientDObjectMgr registers and starts a flusher interval that will never be
shutdown. Since ServerCommunicator lives for the lifetime of the server, this
has not caused problems.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6034 542714f4-19e9-0310-aa3c-eee0fc999fb1
pointless. Let's deprecate it and auto-generate DObjects that just use clone().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6028 542714f4-19e9-0310-aa3c-eee0fc999fb1
Down in yohoho, I've hit a case where I need to explicitly look up
a pluralized key of my very own.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6026 542714f4-19e9-0310-aa3c-eee0fc999fb1
we're not running in a peered environment. Technically it might be
better to add the PeerManager to the lifecycle in init, but I don't
want to screw with the shutdown order, and this is the lowest-impact
solution.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6021 542714f4-19e9-0310-aa3c-eee0fc999fb1
from needing to synchronize around profile access.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6018 542714f4-19e9-0310-aa3c-eee0fc999fb1
Apologies for the redundant cast warnings this is sure to introduce.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6015 542714f4-19e9-0310-aa3c-eee0fc999fb1
when posted to a shutdown queue. There's a method we can override for that now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6013 542714f4-19e9-0310-aa3c-eee0fc999fb1
and not necessarily even useful. I have found that using finalizers
seems to change how things get collected, even without doing
any funny tricks. Besides, we can use good modern profilers nowadays.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6010 542714f4-19e9-0310-aa3c-eee0fc999fb1
I'm also bumping BiteMe's Kontagent implementation into a more accessible place, and it relies on
this class. Also, it can be pretty handy.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6009 542714f4-19e9-0310-aa3c-eee0fc999fb1
interdependents have indicated they're blocking to check. Otherwise the unit running before the
last BlockingUnit can post to the presents invoker and those newly posted units will be skipped.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6006 542714f4-19e9-0310-aa3c-eee0fc999fb1
- PresentsInvoker decides it's empty
- It waits on other dependencies
- During the wait, something (probably from one of the other dependencies) posts to the PresentsInvoker
- We loop back around, the dependencies are empty
- We end early, with the posted bit still to be done...
So... after waiting, do a quick check for emptyness and if not satisfied, start the whole dern cycle over.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6005 542714f4-19e9-0310-aa3c-eee0fc999fb1
NamedSetAdapter on autopilot; there you have multiple things that you might not want
to bother with, but here you damned well BETTER implement that one method yourself.
Also, while I'm at it, make that protected since I really doubt you're going to find
yourself sitting on top of an EntryAddedEvent that you're REALLY SURE is the right
one & want to pass it in to one of these by hand. And if you do, suck it up and let
the string compare burn the couple extra cycles to make sure. (I feel like making
the same change to the other Named* things here real quick, but I should really
double check that I don't break anybody's stuff/change anything I see using it that
would now be making the named versions more visible for now good reason)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6004 542714f4-19e9-0310-aa3c-eee0fc999fb1
listen for ElementUpdatedEvents on specific bits on dobjs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6003 542714f4-19e9-0310-aa3c-eee0fc999fb1