• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

smarr / SOMns / 1033
79%
master: 98%

Build:
Build:
LAST BUILD BRANCH: truffle-update
DEFAULT BRANCH: master
Ran 19 Jan 2017 03:44PM UTC
Jobs 1
Files 43
Run time 3s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
1033

push

travis-ci

smarr
Implement a basic ‘toy’ STM

The general idea is that all accesses to objects and arrays are mediated via
`Change` objects. These keep a copy of the initial state, and a working copy on
which the transactions perform their accesses. On commit, we simply compare the
initial state with the publicly visible objects, if any change (conflict) is
seen the transaction retries. If no conflict was determined, the new state is
copied into the publicly visible object.

Transactions always succeed, this implementation automatically retries.

The initial creation of a `Change` object accesses the public object while
holding its lock. Similarly, on writing back changes, the lock is acquired.
Transaction commits are globally sequentialized on a single lock.

Method and blocks executed inside a transaction execute an `atomic` variant of
their method body. All invocable used in the transactional context, i.e.,
within a `atomic: [...]` execution are split from the normal methods, and
marked as `isAtomic`. This flag allows to insert the necessary nodes to ensure
that a transaction works on working copies private to the transaction.

To avoid issues with class identity, the slots storing lazily allocated class
objects are ignored when comparing and updating objects.

Inspired by: Transactional Memory for Smalltalk
L. Renggli, and O. Nierstrasz. In Proc. of ICDL, 2007.
DOI: 10.1145/1352678.1352692

Signed-off-by: Stefan Marr <git@stefan-marr.de>

4146 of 5229 relevant lines covered (79.29%)

1789.44 hits per line

Jobs
ID Job ID Ran Files Coverage
1 1033.1 (TASK=tests) 19 Jan 2017 03:44PM UTC 0
79.29
Travis Job 1033.1
Source Files on build 1033
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #1033
  • bbdd7dec on github
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc