Commit Graph

488 Commits

Author SHA1 Message Date
Michael Bayne 9434b6e9bc Just use a volatile variable and do away with the synchronization, at
Mr. Greenwell's suggestion.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3416 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-18 19:26:11 +00:00
Michael Bayne 9682983526 We can't rely on the connection manager not being shutdown to determine
whether or not we're already shutdown as it may have shutdown
unexpectedly.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3415 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-18 19:08:18 +00:00
Michael Bayne 77f9d8836c Allow a connection manager shutdown hook to be registered.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3414 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-18 19:00:01 +00:00
Michael Bayne 713e76373b Allow the authenticator to slip some authentication data down the line to
the PresentsClient which can then use it to fill in things like access
control information for the user. We could use this to replace the
UserStash mechanism we use on Yohoho, but that works so I doubt I'll do
that. However, this is needed to do things the more elegant way on future
projects, like Game Gardens.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3374 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-02 03:08:23 +00:00
Ray Greenwell a784ce8a79 Comment change so that I can check it in with the right umask.. grr.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3370 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-02-26 14:30:52 +00:00
Ray Greenwell 008b9ad896 When a new default access controller is set, switch any objects
that were using the old default (usually null) to use the new default.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3369 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-02-26 14:04:25 +00:00
Michael Bayne 44f2a29f4f Regenerated with updated copyright information.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3365 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-02-22 18:56:52 +00:00
Michael Bayne 121f6d7e53 Did the refactoring necessary to get the client and server to live happily
together in one JVM and both interoperate with the AWT thread in a manner
so harmonious as to bring a tear to the eye. This was surprisingly much
easier that I expected, thanks to my eminently sensible initial design,
I'm sure. ;)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3360 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-02-20 00:37:34 +00:00
Michael Bayne 8f9af12fdb Use a direct buffer for our overflow queue partial buffer as well because
there will be relatively few of those (at most one per client that is
experiencing lag) and while the client is experiencing lag we will be
trying to write their data once per pass through the sockets (which could
be hundreds of times a second) and we don't want each write attempt to
result in the creation of a temporary direct buffer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3345 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-02-10 04:39:23 +00:00
Michael Bayne afabea71ad Big fat Bernie javadoc cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3310 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-01-24 23:08:21 +00:00
Michael Bayne dd04679568 Deal with the new Invoker.UnitProfile when reporting profiling statistics,
changed the output format to be the same as the one for DObjectManager
profiling output.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3309 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-01-24 17:17:27 +00:00
Michael Bayne be93e5eb12 Make sure to catch any error while processing our events, not just when
actually dispatching the event to subscribers. We can't trust anyone.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3308 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-01-24 07:59:31 +00:00
Ray Greenwell bd80c348eb The great Interval revamp.
There is no more SafeInterval, instead Intervals can be constructed with a RunQueue to use for expiring.
PresentsDObjectMgr implements RunQueue.
Client has a getRunQueue() method to get the client side RunQueue.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3283 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-22 19:23:00 +00:00
Michael Bayne a6d7764e29 More custom classloader support. We now have a proof-of-concept working so
it's unlikely that the rabbit hole will surprise us with further depth.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3269 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-10 02:54:26 +00:00
Ray Greenwell 7b3750c19c Log when a shutdown is initiated by someone pressing ctrl-C (or sending
the process the same signal another way).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3263 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-12-06 22:11:57 +00:00
Michael Bayne a04e23e025 Regenerated our marshaller and dispatcher classes with the new Java-based
generator. It handles inner classes slightly differently and prepends a
project-specific header to the generated classes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3239 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-25 04:47:40 +00:00
Michael Bayne 254e60811e Removed our temporary code as we have figured said things out.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3234 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-24 20:37:36 +00:00
Michael Bayne 4cdcec6149 Do some hackery until we figure out where AuthUserObjects are getting
mapped into the client table without mogrified names.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3226 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-23 00:17:46 +00:00
Andrzej Kapolka f5fc8f9d2a Added stored interval id to server SafeInterval, to match client.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3223 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-11-19 00:32:18 +00:00
Michael Bayne dd1f895190 Handle the situation where a referred object and the referring object are
both destroyed without any intervening event processing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3186 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-10-28 21:59:00 +00:00
Michael Bayne 8e9322c7fb Don't reclose an already closed connection, it generates a warning.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3173 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-10-27 01:27:44 +00:00
Michael Bayne af6409e742 Make the comments and logging consistent with what we're doing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3132 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-10-13 01:09:14 +00:00
Michael Bayne bbabf827f4 A simple server useful for rejecting client logins when we don't want to
run a real server.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3131 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-10-13 01:02:19 +00:00
Michael Bayne 8856ae43a0 Made session ending more robust in the face of potential boocehs by
derived classes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3118 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-09-15 18:21:26 +00:00
Michael Bayne a9720fd905 LGPLed the library. Hello world.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3099 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-27 02:21:06 +00:00
Michael Bayne bfc0fbcd3e Removed DObject dump as that is now handled by the tracked object dump.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3090 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-23 21:01:36 +00:00
Michael Bayne be14cd3877 Create all of our arrays and do it somewhere sensible.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3069 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-04 03:32:18 +00:00
Michael Bayne a924387ffb More statly bits.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3067 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-04 02:36:56 +00:00
Michael Bayne 6b0695af30 Track and report some connection manager stats over a short historical
period so that we can see what sort of funny business is going on with the
network thread when the process spikes up to 100% CPU.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3066 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-04 02:31:18 +00:00
Michael Bayne 212ebb1b53 As Ray pointed out, clearing the oid upon destruction causes problems, so
let's just not do it. We can accomplish our earlier goals, though with
slightly less distinction making capability, in a different way.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3050 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-07 03:10:24 +00:00
Michael Bayne 761e05c540 Try to only log when something actually bad is going on.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3049 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 09:30:03 +00:00
Michael Bayne f8e5c85d1f Keep mum about connections being reset by their peer. It is a normal event
in the wild, wild world of the Interweb.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3048 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 09:19:04 +00:00
Michael Bayne 124abb66f7 This also happens as a matter of course. Clients send invocation requests
after things have already been processed and cleaned up on the server.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3047 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 07:24:39 +00:00
Michael Bayne e57580626e Clients come and go at the craziest of times. No need to worry about it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3046 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 07:19:46 +00:00
Michael Bayne 90e5231bae When a DObject is destroyed, set its oid to -1 so that it knows that it
was once alive but is now gone. Catch attempts to start a transaction on a
destroyed object and log them as such. Made isDestroyed() and isActive()
final for wholly unfounded performance reasons.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3045 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-07-03 07:16:56 +00:00
Michael Bayne e1d5b096ed Invoker refactoring.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3041 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-06-29 03:22:22 +00:00
Michael Bayne 031331a5c3 Regenerated from service definitions.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3037 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-06-22 13:57:44 +00:00
Michael Bayne 0af79e2719 Invoker unit namestravaganza.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3023 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-06-13 08:51:57 +00:00
Michael Bayne fadc9b82d9 Other entities may also want to queue up a shutdown.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3015 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-06-03 09:03:06 +00:00
Michael Bayne 0dfbb137e5 Added a mechanism for being informed when the connection manager fails to
bind to its socket.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3014 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-06-03 09:02:47 +00:00
Ray Greenwell 60f9159f25 When flushing inactive clients, don't let a choke in one prevent us
from flushing the rest.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3005 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-05-10 17:45:27 +00:00
Michael Bayne 32dee3cbaf 405 modified source files and 17,367 lines of diffs later we now enforce
more discipline when handling names in our code base. Any user entered
name should find its way into a Name object as soon as it comes out of a
text field or whatnot, and stay that way until it makes its way into a
text field or into a database record (for which String objects are vastly
simpler because of JORA magic).

Dear God, let me never again make a change this large for the rest of my
mortal life.

Unfortunately, this means we have to keep an eye out for funny business
pretty much everywhere. However, since we will absolutely want to test
market stalls and so forth on Azure, we'll have an opportunity to iron out
any funny business that might fall under the radar during our internal
testing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2980 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-03-06 11:29:19 +00:00
Michael Bayne d618d3c771 Eclipse suggested cleanup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2971 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-25 14:50:28 +00:00
Ray Greenwell bfe9cbba04 Changed the variable named "enum", since that's a keyword in jdk 1.5
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2964 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-22 18:52:33 +00:00
Michael Bayne ebdf693143 Log the culprit when we report and continue from a fatal error.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2963 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 02:18:56 +00:00
Ray Greenwell a7908454a1 Removed insano tracking that allowed me to find the IntroPirate bug.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2962 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 01:00:23 +00:00
Michael Bayne 350c49835c Let's use proper grammar.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2961 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 00:54:51 +00:00
Michael Bayne f8f4c1a611 If a client sends more than 100 messages in 10 seconds, give them the
heave ho.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2960 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 00:52:16 +00:00
Michael Bayne 461a72bd94 Mark each upstream message with a the time at which it was decoded from
incoming network data.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2959 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 00:51:02 +00:00
Michael Bayne a26e460fd6 Catch fatal errors thrown by invoker units as well. Also only log the
stack trace if we're not going to rethrow the error.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2958 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 00:22:30 +00:00