Consider this a beta version of the article. I have tried very hard to
get all the facts straight and have reviewed it many times. It seems
inevitable though that I may have stated some things incorrectly. This
is complicated stuff ... which it must be in order to make concurrent
programming easier.
If you have an interest in this topic, I'd appreciated getting some
feedback on the article. In particular, search for "Question:" in the
article. I'll make suggested updates quickly to avoid spreading any
misinformation.
You can find the article at http://ociweb.com/mark/stm/article.html.
Thanks!
--
R. Mark Volkmann
Object Computing, Inc.
Thanks!
> The final part of the article where you comment on the various
> functions like
> add-watcher etc, is not very insightful and the UML charts didnt help
> me all
> that much. But with such a small amount of critisism, its actually a
> compliment :)
>
> I loved it! Thanks.
Yeah, the "Low Level" section is mainly useful if you want to go
through the source code (especially Ref.java and
LockingTransaction.java) and you want some assistance figuring out the
purpose of each field and the functionality of each method. Most
readers will probably get what they want from the first half of the
article which is everything before that section.
Thanks!
> My only concern is that some of the internals *could* change over time
> (I see Rich's commit stream) and some indication in the doc
> identifying what's design level (won't change) vs. implementation
> level (might change) would be useful.
That's a very valid concern and that's why I say this near the
beginning of the "High Level" section:
"My intention is to update this article whenever the Clojure STM
implementation changes so it remains an accurate source of information
that is easier to digest than simply reading the source code."
I expect that we'll see all the STM-related code rewritten in Clojure
instead of Java, perhaps within the next year, so I'll have a lot of
updating to do.