Commit Graph

4334 Commits

Author SHA1 Message Date
Jamie Doornbos 7a3f264d43 Minor changes to previous fix. Log runnable, event or message that is being posted to the inactive queue. Remove instanceof check since the invoker will always be of the expected type
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5495 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 23:14:47 +00:00
Michael Bayne e843684637 Fix typo.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5494 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 23:01:45 +00:00
Michael Bayne f60713de17 Between the time that we're shutdown and the time that we finally exit, do not
accept new connections or read incoming messages from any of our extant
connections. Do send outgoing messages to those connections, but nothing else.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5493 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 23:00:07 +00:00
Jamie Doornbos e97d19476b Be less harsh and just log a warning in case some shutdown methods rely on posted events or messages being silently ignored (invoker still throws however, because it was throwing before)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5492 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 22:49:25 +00:00
Jamie Doornbos 82d4f36c1a Fixes for shutdown sequence, including prevention of a race condition
* Throw an exception if any events, runnables or messages are posted after shutdown. These were previosuly being silently ignored. We really should know about them.
* Don't exit the connection manager thread until the object manager thread exits. This fixes a race condition where the wakeup time of the conmgr thread would determine if it shutdown before or after the object manager, meaning it would sometimes ignore messages around shutdown time.
* Add a shutdown constraint to make the client manager shutdown before the invoker/event/conmgr threads. This gives a single point in the shutdown sequence that applications can use as a constraint (TODO: shutdown groups?)
* Emit a log message for each shutdown method call. This could be very useful in production.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5491 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 22:20:16 +00:00
Jamie Doornbos 055ae0cc98 Allow bureau clients to report fatal errors if something goes wrong, like oh I don't know... maybe a disconnection perhaps
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5489 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-01 00:31:53 +00:00
Mike Thomas dc99a123ad Helps if we actually call the function that's able to be overridden.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5488 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-31 21:46:47 +00:00
Charlie Groves 0906ccdca5 Things work better when you set values and whatnot
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5487 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-31 20:31:51 +00:00
Charlie Groves 15c66260ea Take ChangeListeners in SafeSubscriber's constructor that will start listening
to the subscribed object when it becomes available and will stop listening when
we unsubscribe.



git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5486 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-31 18:33:59 +00:00
Michael Bayne a3e74276f5 Implement these listeners in helper classes rather than in ourselves where they
become undesirably part of our public interface.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5485 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-31 17:33:26 +00:00
Michael Bayne 7d4a594929 Truth in method naming.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5484 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-30 22:31:15 +00:00
Mike Thomas f511469901 Purge the use of the getChatName() hack.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5482 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-29 22:26:56 +00:00
Mike Thomas 815f7b5b44 Allow the output stream to be overridden just like the input stream on the config registry.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5481 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 22:47:13 +00:00
Michael Bayne 677e06b193 Let's have a nice toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5480 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 22:16:38 +00:00
Michael Bayne 7d5d10e2f8 Ray wants size() and I don't want mutators. I'll compromise and return an
immutable list.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5479 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 20:40:35 +00:00
Dave Hoover da52d29a0a Javadoc nitpickery
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5478 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 20:37:28 +00:00
Michael Bayne 826a1a0bcc Added getLocals().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5477 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 20:25:08 +00:00
Michael Bayne 6fd2882fa9 Actually we need to set up our local attribute here.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5476 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 20:02:51 +00:00
Michael Bayne d1be746bdb Created ClientLocal and BodyLocal which is where we'll track server-only
information.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5474 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 17:55:17 +00:00
Michael Bayne c544146c45 Brevity is going to be our friend here.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5473 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 17:53:40 +00:00
Michael Bayne 7c52427d83 Added local attributes to DObject. These are objects that are stored only on
the local JVM (in general we'll use them on the server). The idea is to get rid
of all of our messy transients in BodyObject on down (and possibly other
places) and encapsulate them in a nice ClientLocal object (extended to
BodyLocal and on down).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5472 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 17:46:27 +00:00
Michael Bayne 6c4f37d49f Drive by de-whitespace-excessificiation.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5469 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 21:08:21 +00:00
Michael Bayne ded19474bc Added foo/s to various report output.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5468 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:59:24 +00:00
Michael Bayne ce7cc1bc96 Added PeerService.generateReport().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5467 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:19:32 +00:00
Michael Bayne 8aeb239f64 Only put our header on logged reports, not reports generated by explicit
callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5466 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:12:03 +00:00
Michael Bayne f17740894e Out vile tabs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5465 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:09:18 +00:00
Michael Bayne 8b79a17b6d A helper class that smooths out integration of Narya invocation service calls
with the java.util.concurrent Future paradigm.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5464 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:05:28 +00:00
Michael Bayne 8970582e6d Only issue this warning if we actually have one non-null and one null value.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5461 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-24 21:43:23 +00:00
Michael Bayne e52dae9a92 Accomodate up to one extra message per second in case the client is balls to
the wall. There are vagaries of timing that simply cannot be accounted for and
a client that spends too much time with its balls up against a proverbial hard
flat surface will eventually get disconnected, but we are now a bit more
lenient in handling ~10 second sustained bursts of activity.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5459 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-24 20:45:18 +00:00
Michael Bayne 1989531831 Mystery solved.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5457 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-24 07:13:13 +00:00
Mike Thomas c4e0d1d278 Be a bit more flexible with the generics here.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5456 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-23 23:18:44 +00:00
Michael Bayne 2c35dbf0d0 Log this for a while while I debug the sporadic failure of session resumption
on Whirled.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5455 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-23 21:32:21 +00:00
Dave Hoover 43ce491518 Whoops, how about I look more closely when I do that? We're dealing with two
arrays here, so if I just sort the one, it'll give us nicely sorted tabs that
point to the wrong contents.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5453 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-21 22:47:13 +00:00
Dave Hoover 9ffd721490 Since these keys come back in pretty random order, let's sort them alphabetically.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5452 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-21 16:38:01 +00:00
Jamie Doornbos 6fa89df998 Allow a size limit to be imposed on the amount of output that we copy from a bureau process
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5450 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-16 22:37:08 +00:00
Dave Hoover 31d0151815 Nope, those really are on PlaceManager, they're just protected so
my javadoc stuff freaked out since PresentsServer isn't allowed to 
see them. Point back to the right place.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5448 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-15 20:06:57 +00:00
Dave Hoover 27b52ccb87 Those are on me, not PlaceManager
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5447 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-15 18:58:26 +00:00
Michael Bayne de6558a25b Guard against naughtiness, intentional and not.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5446 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-14 23:16:39 +00:00
Michael Bayne c914827458 We need an invmgr reference as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5445 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-14 23:02:18 +00:00
Michael Bayne 0764379634 Make omgr the same type it used to be.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5444 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-14 21:39:02 +00:00
Michael Bayne ccba68ab36 This needs to come back to make a whole bunch of Game Gardens games work.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5443 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-14 21:32:54 +00:00
Michael Bayne f1b1a06834 Updated services.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5436 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-10 22:46:24 +00:00
Michael Bayne 97b6ea79c5 Moved BodyObject.username down to ClientObject.username so that one can look up
the PresentsClient given a ClientObject.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5435 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-10 22:45:58 +00:00
Michael Bayne 91d7846b46 We need to register our handler for ThrottleUpdatedMessage.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5434 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-10 22:45:25 +00:00
Mike Thomas c4527b2524 Split out the "chat name" from the rest of the visible name usage - Unfortuantely, visible name is used by various game bits as a lookup, so sometimes we want to just override the name to display in chat without affecting those lookups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5431 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-10 01:25:18 +00:00
Dave Hoover a9ed8f68da Damnit, narya, stop getting that little yellow triangle w/ an exclamation mark
every time I svn up.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5427 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 22:25:39 +00:00
Michael Bayne 4f89bb2dbc Point to the right explanatory method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5425 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 20:14:27 +00:00
Michael Bayne 2e8b63435a Thinking about it more, what we really want is for the client to target the per
second rate (10 messages per second), and to do the same 10x buffer on the
server that we were doing before so that we avoid disconnects due to network
congestion (which might "save up" some throttled messages and then end up
delivering them in a bunch with some later messages).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5424 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 20:13:30 +00:00
Michael Bayne 234b00df27 That's initialized in the constructor.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5423 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 19:39:35 +00:00
Michael Bayne 9c65e203b5 Client side message throttling. The server is configured with a hard limit, it
communicates that limit to the client which queues outgoing messages so that it
does not exceed the limit. When the throttle is changed, the server does not
apply the new throttle until the client has ACKed it to avoid edge cases where
the client is up against the limit when the throttle changes.

ActionScript side of all of this forthcoming as well as more testing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5422 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 19:38:00 +00:00