Commit Graph

821 Commits

Author SHA1 Message Date
Ray Greenwell df5f5ace27 Cut client latency by attempting to send upstream messages
immediately.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5592 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-10 21:41:10 +00:00
Ray Greenwell 7c979eb436 Logging varagification, associated stack traces.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5587 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-10 01:05:41 +00:00
Ray Greenwell a3e1c6e09e Fixup.
If there's an error when calling the callback function,
we were assuming it was an argument-related error and trying again.
However, this is sorta bad behavior as we don't want to call
twice into a callback. In the case I was seeing, the first time
in caused an NPE, but popped up a panel, and the second try
was no-opping because the panel was already up (but misconfigured).

So: don't even try a second call, because it looks like
flash will accept args to an argless function.
We'll have to try this out for a while and see if it works.
If so, I can neaten this code. If not, I'll uncomment
some of this and try a more surgical approach (only catch
ArgumentError, only retry if we had 1 boolean arg.)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5585 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-09 23:23:15 +00:00
Ray Greenwell 5f69af762d Reorder the args to these adapters: success is first now, followed by failure.
This has been wacked-out like this ever since I first wacked it out.
Since the base class is ResultAdapter and it only takes failure, and the
'processed' function for ConfirmAdapter is optional, it seemed to make
sense this way.
But, we have another ResultAdapter (for non-invocation ResultListener)
and it expects success first.
So Mike noticed this today (I swear there was a big brouhaha about this
over the summer) and beat me with my own rubber chicken.
I'm not sure why I had a mental block about reordering, but let's do it!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5583 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-09 02:20:48 +00:00
Nathan Curtis 34d2833580 Enums can safely be used as Dictionary keys, and should therefore pass the isSimple() test.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5581 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-06 00:39:05 +00:00
Ray Greenwell e649880f90 Allow a message to be passed to happy testing dumpStack()
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5566 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-20 19:48:47 +00:00
Par Winzell 13c9f01b6e Go go invisible unicode characters.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5562 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-19 17:24:01 +00:00
Par Winzell 5d769cbf5f So, Flash CS4's internal compiler chokes on public class that implements an interface, when it's followed by faux-inner-classes after the main package declaration. This is the only workaround I can think of; pray god Adobe fixes their stuff soon and we can revert this irritating patch.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5561 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-19 15:14:29 +00:00
Jamie Doornbos 79f5a17600 Oops, stray debug line got left in
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5549 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-14 01:51:28 +00:00
Jamie Doornbos 71af5514da Be nicely behaved if the user manages to close the client before the socket is opened
* Use _writer != null iff the socket is open and the authrequest has been sent
* Warn when posting messages prior to socket connect
* Clear the outgoing queue prior to sending the auth request, the servers authing connection expects this
* If a logoff is encountered prior to the socket opening, just shut down without sending auth request
* Driveby unused variable removal

This should fix the log warning "AuthingConnection$1: Received non-authreq message during authentication process"

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5548 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-14 01:49:58 +00:00
Michael Bayne ca2dc8dc4a Don't start our writer thread until we know our socket is connected and ready
to send data.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5544 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-12 00:32:54 +00:00
Michael Bayne c62cf6ba6f Don't start our tick interval until we've successfully logged on. There's no
utility in sending pings before we're authenticated.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5543 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-12 00:30:35 +00:00
Tom Conkling 96ae821e58 ArrayUtil.removeFirstIf(), removeLastIf(), removeAllIf() predicate-based removal functions
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5533 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 00:22:26 +00:00
Ray Greenwell a9f7175d2f Removed unused import.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5507 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-05 23:13:08 +00:00
Ray Greenwell ff20abf27d Fixed parameter reading on Windows.
(We are parsing a URL, and even though it represents a file, it's still
a URL, so it uses the standard slash and not the microsoft slash.)
This will make SDK testing work on Windows.
We suck a lot for not fixing this sooner, but
- I didn't have Windows set up for development.
- It was broken for so long, we deprioritized and then sorta forgot about it.
This has been broken for over 5 months, when I last touched this file
to make it work on Macs.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5506 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-05 23:11:49 +00:00
Par Winzell 1a467468ff Don't fill the array with zeroes when we reinitialize the Throttle with the same number of operations as we already had, as that allows a potentially dangerous burst of operations.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5505 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-05 17:17:41 +00:00
Par Winzell bb670e14a8 When we reinitialize the Throttle with a smaller number of allowed operations within a time period, we should preserve the oldest rather than the newest ones, or we'll most likely be in immediate and unfair violation of the limit.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5504 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-05 00:21:17 +00:00
Ray Greenwell 2a6940363d Rollback r5502.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5503 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 21:42:18 +00:00
Tom Conkling b9245e9be8 In keeping with Adobe's convention, Set and Map's forEach() function takes an optional 'thisObject' param
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5502 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 20:21:26 +00:00
Par Winzell 4bc5627d82 Let's have Set implement forEach, like Map does.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5500 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 18:21:29 +00:00
Jamie Doornbos 14755a6cea Fixed fundamental flaw with throttling code. Changed the client to adjust its message rate when it actually sends the throttle updated message. Otherwise the client starts sending at the new rate before the server knows about it. Keep the messages per second in the message.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5499 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 08:37:13 +00:00
Jamie Doornbos ed002196b0 Missed a line from the previous change. Added comment for new ArrayUtil method
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5498 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 08:33:05 +00:00
Jamie Doornbos 4633684fb6 Copied code from java implementation of Throttle.reinit(). After testing, I found this method was leaving older values in the middle of younger values
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5497 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 06:41:00 +00:00
Jamie Doornbos 0cb3330de7 Refix for long running clients (r5483). I must have introduced this at the last minute when switching my original -32768 to use Short.MIN_VALUE instead, forgetting to remove the negation
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5490 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 19:26:57 +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
Jamie Doornbos ed0718674e Fixed bug with long running clients. The results for invocation requests with ids exceeding Short.MAX_VALUE could not be processed due to the id being deserialized as a short but stored in the map with an integer key.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5483 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-30 17:15:42 +00:00
Jamie Doornbos b9ab203c0c Fixed Throttle bug causing any increase in the number of operations to block all message throughput. Fix prevents copying from negative indices of _ops. This caused a NaN entry which always resulted in an effective age of 0 regardless of getTimer(), causing a permanent state of throttling
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5475 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 18:00:55 +00:00
Jamie Doornbos d9f5328f1c Fixed recent breakage of actionscript bureaus. Apparently tamarin does not like constant members assigned in a base class? Weird but plausible if it (buggily) sets up all members of a class and assigns defaults values before constructing bases.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5470 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-27 07:54:38 +00:00
Ray Greenwell d9aee80a12 Killed bureau.Log.
We never did things like that in actionscript,
and that pattern is now deprecated on the Java side as well.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5463 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-25 01:36:18 +00:00
Ray Greenwell 5216602e63 Change how we link classes that aren't otherwise linked.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5462 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-25 01:24:13 +00:00
Ray Greenwell 3a457a2479 Muting for actionscript.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5460 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-24 21:20:43 +00:00
Ray Greenwell f8e4911266 Might as well make our actionscript trim() null tolerant as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5454 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-23 21:00:08 +00:00
Ray Greenwell a0771dce79 - Added a primitive formatNumber()
- Handle commas in parseNumber()


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5449 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-16 20:54:53 +00:00
Nathan Curtis 24b5b905e1 A couple of example usage fixes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5442 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-14 21:06:28 +00:00
Jamie Doornbos 077c5e8053 At Ray's suggestion, go ahead and throw an error when the wrong type is read. Use the Type(obj) cast syntax (I was unaware that this would actually throw an error). Reading objects of a basic type like Array must still use "readObject(Array) as Array" so this is still supported, though not needed for user types.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5441 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-13 17:34:55 +00:00
Jamie Doornbos 2b298aa3d5 Pass in the expected type to readObject anywhere the code would clearly convert the wrong type to null anyway
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5440 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-11 06:28:50 +00:00
Jamie Doornbos a3cc67348e Gah, this was part of the implementation, but in the end I took it out but missed the import
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-11 06:21:54 +00:00
Jamie Doornbos e12ff0e9f3 Optional type checking for readObject
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5438 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-11 06:06:06 +00:00
Jamie Doornbos a99238faf8 Fixed username member for actionscript. Serialization was completely hosed
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5437 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-11 05:17:40 +00:00
Michael Bayne a4a25674ce Outgoing message throttle for ActionScript. This uses a timer rather than a
frame listener so that it has a chance of working out of the box on Thane.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5432 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-10 17:27:47 +00:00
Ray Greenwell 19ac92f624 We've got a utility method for filling an array with an initial value.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5430 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-09 23:20:29 +00:00
Michael Bayne b7214df1c2 We need our array to be filled with zeros, not undefineds.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5429 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-09 22:08:47 +00:00
Michael Bayne 9f2682a5e4 All of the ActionScript side of adjustable outgoing message rate throttling
except the actual throttling part. Need to think about a good way to do this
without blocking the whole client when we hit the throttle.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5428 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-09 20:18:12 +00:00
Jamie Doornbos 3bbd9da353 Fixed spurious warnings about sockets on bureau shut down:
* socketClosed was issuing a warning, presumably because whirled doesn't normally disconnect flash client. Anyway, seems like overkill since the server can disconnect whenever it choosed
* Accoring to adobe, calling Socket.close after the Socket.close event should throw an IOError. Thane holds to this, while flash apparently does not. Make our code neutral by checking for connected prior to calling close

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5415 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-07 16:06:45 +00:00
Jamie Doornbos f782ba7f07 Uncommenting log messages (these are very useful for the thane AVRG controller in msoy and can be configured without commenting them out)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5414 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-03 23:03:23 +00:00
Michael Bayne bb8d04bea0 Tone down verbose logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5404 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-30 21:36:51 +00:00
Ray Greenwell c04adc6a6e Brevify.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5398 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-25 23:54:58 +00:00
Nathan Curtis d4e02b71d8 This is why MultiLoader didn't work in Air. Explanatory comment below.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5397 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-25 23:47:11 +00:00
Jamie Doornbos 59534c1ee6 May as well go totally ISO with date stamp, same as log4j %d
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5396 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-25 21:21:23 +00:00
Ray Greenwell 46e0585e0a - Oh right, change WARNING to WARN (be more like our Java logging)
- Added an ERROR level, along with an error() method.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5395 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-25 21:11:07 +00:00