ConcurrentRelease Notes

Release Notes


  • Chg: Remove warnings from SkySpark doc generation
  • Chg: Recompiled to remove the sourceMappingURL comment from the Fantom JS.


  • New: WorkerPool class combines ActorPool with Synchronized.


  • Bug: Fixed AtomicMap to really work with funcs in Javascript environments.


  • New: afConcurrent now available as a SkySpark extension.
  • New: Added workaround so AtomicMap may hold funcs in Javascript environments.


  • New: Added SynchronizedState.trap() as convenience for calling state methods on sync().
  • New: Added push(), pop(), and peek() to all Lists.
  • New: Added toStr() methods to all Maps and Lists.
  • New: Added it-block ctor to SynchronizedState so you may set your own Synchronized lock object.
  • New: IoC SynchronizedProvider now injects SynchronizedState instances.
  • Chg: Deprecated getState() and withState() on SynchronizedState in favour of sync() and async().
  • Chg: Consolodated all *List.list and * fields to val (renamed).
  • Chg: Synchronized explicitly calls .toImmutable() on returned objects to avoid Not serializable errors when returning lists and maps.
  • Chg: More details exposed on NotImmutableErr thrown from Synchronized.
  • Bug: SynchronizedBuf could grow unbounded. It now empties once reading catches up with the writing.


  • New: A thread safe and const SynchronizedBuf.
  • New: Added insert(), first(), & last() to all Lists.
  • New: Added each() to all Maps.
  • New: Added sync(), async(), & asyncLater() to SynchronizedState.
  • Bug: SynchronizedList.remove() & SynchronizedList.removeAt() threw an NPE if the item was null or didn't exist.


  • New: Added removeAt() to all Lists.
  • New: SynchronizedProvider now provides ActorPool instances.
  • Chg: Exposed Actor on Synchronized.
  • Chg: Made Synchronized methods virtual - happy overriding!


  • New: Synchronized.asyncLater().


  • New: ActorPools and LocalRefManager.
  • Chg: Added non-invasive services and modules for use with IoC v3.
  • Chg: Renamed SynchronizedList.listType to valType.
  • Bug: AtomicMap.getOrAdd() could return an unexpected null during race conditions.


  • Chg: AtomicList and AtomicMap are now available in Javascript.
  • Chg: LocalRef also available in Javascript, but only with Fantom 1.0.68.


  • New: Added Synchronized.inSync() method to tell if you're currently in the Sync thread or not.
  • Chg: Renamed listType to valType in LocalList and AtomicList. (Potential breaking change.)


  • New: Synchronized locks are re-entrant by default.
  • Chg: SynchronizedFileMap only caches values whose associated file exists.
  • Bug: SynchronizedFileMap would Err if handed a non-existant file.


  • New: Runtime type checks on all List and Map, keys and values.
  • Bug: Synchronized could mistakenly wrap un-related IOErrs with it's own immutable err msg.
  • Bug: Could not set the SynchronizedFileMap timeout to null.


  • New: All Maps and Lists can be parameterized with Types. Set them in the it-block ctor.
  • New: LocalRefs, LocalLists and LocalMaps are now really lazy and don't create objects unless they really need to.
  • New: Added SynchronizedFileMap.isModified(File).


  • New: Initial release.
  • New: Added SynchronizedFileMap.
  • Chg: LocalRef ctor now takes a defFunc instead of an initValue.