40. ofree.Adapter
Factoryが
構造 Factoryが
生成 生成
<Atomic> Locator writer Transaction
AtomicData
state
new
AtomicData$ Version AtomicData$
value
old
Adapter start Version AtomicData$
value
Atomic
Reference
41. ofree.Adapter
初期状態
<Atomic> Adapter writer Transaction
AtomicData
committed
new
AtomicData$ Version AtomicData$
value
old
Adapter start Version
null
42. ofree.Adapter ①committed
リード(1) なので
<Atomic> Adapter writer Transaction
AtomicData
committed
new
AtomicData$ Version AtomicData$
value
old
Adapter start Version ②newVersion
null
を読む
43. <Atomic> ofree.Adapter
AtomicData
ライト
AtomicData$ Locator writer
committed
new
Version value
old
Adapter start Version null ①前の値を
コピーして
新しい値を
Locator writer 書き込む
active
②新しいAdapterを new
作成して繋ぎ替え Version value
old
Version
44. ofree.Adapter ①active
リード(2) なので
<Atomic> Locator writer Transaction
AtomicData
active
new
AtomicData$ Version AtomicData$
value
old
Adapter start Version AtomicData$
value
②oldVersion
を読む
45. ofree.Adapter ①committed
コミット後 にする
<Atomic> Locator writer Transaction
AtomicData
committed
new
AtomicData$ Version AtomicData$
value
old
Adapter start Version AtomicData$
value