Class PhusionPassenger::AnalyticsLogger::Lock
In: lib/phusion_passenger/analytics_logger.rb
Parent: Object

Methods

lock   new   reset   synchronize   unlock  

Public Class methods

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 296
296:                 def initialize(mutex)
297:                         @mutex = mutex
298:                         @locked = false
299:                 end

Public Instance methods

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 316
316:                 def lock
317:                         raise if @locked
318:                         @mutex.lock
319:                         @locked = true
320:                 end

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 301
301:                 def reset(mutex, lock_now = true)
302:                         unlock if @locked
303:                         @mutex = mutex
304:                         lock if lock_now
305:                 end

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 307
307:                 def synchronize
308:                         lock if !@locked
309:                         begin
310:                                 yield(self)
311:                         ensure
312:                                 unlock if @locked
313:                         end
314:                 end

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 322
322:                 def unlock
323:                         raise if !@locked
324:                         @mutex.unlock
325:                         @locked = false
326:                 end

[Validate]