Brian Gough пре 11 година
родитељ
комит
7af5050370
1 измењених фајлова са 6 додато и 1 уклоњено
  1. 6 1
      services/track-changes/app/coffee/DocArchiveManager.coffee

+ 6 - 1
services/track-changes/app/coffee/DocArchiveManager.coffee

@@ -52,9 +52,14 @@ module.exports = DocArchiveManager =
 			else if !docs?
 			else if !docs?
 				return callback new Error("No docs for project #{project_id}")
 				return callback new Error("No docs for project #{project_id}")
 			jobs = _.map docs, (doc) ->
 			jobs = _.map docs, (doc) ->
-				(cb)-> DocArchiveManager.unArchiveDocChanges project_id, doc._id, cb
+				(cb)-> DocArchiveManager.unArchiveDocChangesWithLock project_id, doc._id, cb
 			async.parallelLimit jobs, 4, callback
 			async.parallelLimit jobs, 4, callback
 
 
+	unArchiveDocChangesWithLock: (project_id, doc_id, callback = (error) ->) ->
+		job = (releaseLock) ->
+			DocArchiveManager.unArchiveDocChanges project_id, doc_id, releaseLock
+		LockManager.runWithLock("HistoryLock:#{doc_id}", job, callback)
+
 	unArchiveDocChanges: (project_id, doc_id, callback)->
 	unArchiveDocChanges: (project_id, doc_id, callback)->
 		MongoManager.getArchivedDocChanges doc_id, (error, count) ->
 		MongoManager.getArchivedDocChanges doc_id, (error, count) ->
 			return callback(error) if error?
 			return callback(error) if error?