<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,2 +1,4 @@
 .DS_Store
 *.tdb
+*.tct
+.lock</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -59,12 +59,6 @@ module CloudKit
       q.run(self)
     end
 
-    # Simulate a transaction. This development-mode transaction merely yields
-    # to its block.
-    def transaction
-      yield
-    end
-
     protected 
 
     def valid?(record)</diff>
      <filename>lib/cloudkit/store/memory_table.rb</filename>
    </modified>
    <modified>
      <diff>@@ -49,7 +49,7 @@ module CloudKit
     # modify resources that are not current.
     def update(json, remote_user=nil)
       raise HistoricalIntegrityViolation unless current?
-      CloudKit.storage_adapter.transaction do
+      transaction do
         record = CloudKit.storage_adapter[@id]
         record['uri'] = &quot;#{@uri.string}/versions/#{@etag}&quot;
         record['archived'] = escape(true)
@@ -65,7 +65,7 @@ module CloudKit
     # are not current.
     def delete
       raise HistoricalIntegrityViolation unless current?
-      CloudKit.storage_adapter.transaction do
+      transaction do
         original_uri = @uri
         record = CloudKit.storage_adapter[@id]
         record['uri'] = &quot;#{@uri.string}/versions/#{@etag}&quot;
@@ -254,5 +254,16 @@ module CloudKit
     def escape_values(hash)
       hash.inject({}) { |memo, pair| memo.merge({pair[0] =&gt; escape(pair[1])}) }
     end
+
+    def transaction
+      open('.lock', 'w+') do |f|
+        f.flock(File::LOCK_EX)
+        begin 
+          yield
+        ensure
+          f.flock(File::LOCK_UN)
+        end
+      end
+    end
   end
 end</diff>
      <filename>lib/cloudkit/store/resource.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>85e83020e917019aae602f114d36e1c3a6b08028</id>
    </parent>
  </parents>
  <author>
    <name>Jon Crosby</name>
    <email>jon@joncrosby.me</email>
  </author>
  <url>http://github.com/jcrosby/cloudkit/commit/80385d42225ce286016629596291e9a36a20b468</url>
  <id>80385d42225ce286016629596291e9a36a20b468</id>
  <committed-date>2009-03-23T23:37:42-07:00</committed-date>
  <authored-date>2009-03-23T23:37:42-07:00</authored-date>
  <message>Add transaction support for Tokyo Tyrant Tables</message>
  <tree>b5e134f2c70207b86cfc994f26c4f23b294e5cac</tree>
  <committer>
    <name>Jon Crosby</name>
    <email>jon@joncrosby.me</email>
  </committer>
</commit>
