(the main client thread, which will generally be the AWT thread unless the
client is being used in a situation where there is no AWT) to avoid bad
thread clashy.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1424 542714f4-19e9-0310-aa3c-eee0fc999fb1
a) use an ObserverList in SAFE_IN_ORDER_NOTIFY mode which circumnavigates
any funny business like observers being added or removed while we're
notifying the observers.
b) require that the clients be notified on the main client thread
(generally the AWT thread) by using the invoker; we had a problem
previously where clientDidLogoff() was being called by the communicator's
writer thread which caused all hell to break loose because everything
outside the client networking layer depends on running on the same thread.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1422 542714f4-19e9-0310-aa3c-eee0fc999fb1
interpreted according to a globally established base time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1404 542714f4-19e9-0310-aa3c-eee0fc999fb1
after both the reader and writer have exited (otherwise the reader could
exit before the writer which would result in the client chucking its
reference to the communicator which could subsequently bite us in the ass
if anyone tried to reference the client's distributed object manager when
the writer finally exited and triggered all of the clientDidLogoff
callbacks). Multithreaded programming is fun!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1396 542714f4-19e9-0310-aa3c-eee0fc999fb1
single instance of the IntervalManager unlike the standard Java Timer
services which would require someone to have a timer instance to do the
scheduling of our safe intervals. Plus Ray will be much happier now that
the SafeInterval is not so flippant about reusing methods.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1392 542714f4-19e9-0310-aa3c-eee0fc999fb1
session so that fake sessions can effect their own locking.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1294 542714f4-19e9-0310-aa3c-eee0fc999fb1
ones that know that such an action is safe and we don't want stray client
objects lying around cluttering things up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1278 542714f4-19e9-0310-aa3c-eee0fc999fb1
throws ServiceFailedException. The response for a service request named
<foo> would be <foo>Failed. The response has a single argument which is
the reason string provided by the ServiceFailedException. We were doing
this by hand all over the place, and now it will be handled automatically.
Yay!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1268 542714f4-19e9-0310-aa3c-eee0fc999fb1
server by entities that are vaguely impersonating a client. Specifically
they need to fill in the event's source oid because their events are not
going through the client networking layer which takes care of filling that
in for real clients.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1261 542714f4-19e9-0310-aa3c-eee0fc999fb1
as they are intended to represent codes shared between the client and the
server. Made correspondingly necessary changes throughout.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1240 542714f4-19e9-0310-aa3c-eee0fc999fb1
message events) to a transaction already started on a particular object.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1233 542714f4-19e9-0310-aa3c-eee0fc999fb1
means that arrays of heterogenous types are now supported).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1141 542714f4-19e9-0310-aa3c-eee0fc999fb1
streamable serialization code from PolyStreamableList and made it
generally available; modified the StreamableArrayList to support
heterogenous lists (because they don't have much more overhead than
homogenous lists now) which allows us to remove PolyStreamableList
entirely.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1140 542714f4-19e9-0310-aa3c-eee0fc999fb1
have helper functions named set<field>At() for such a purpose.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1134 542714f4-19e9-0310-aa3c-eee0fc999fb1
array element update support. (Arrays have elements, sets have entries.)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1133 542714f4-19e9-0310-aa3c-eee0fc999fb1