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 307
307:                 def initialize(mutex)
308:                         @mutex = mutex
309:                         @locked = false
310:                 end

Public Instance methods

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 327
327:                 def lock
328:                         raise if @locked
329:                         @mutex.lock
330:                         @locked = true
331:                 end

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 312
312:                 def reset(mutex, lock_now = true)
313:                         unlock if @locked
314:                         @mutex = mutex
315:                         lock if lock_now
316:                 end

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 318
318:                 def synchronize
319:                         lock if !@locked
320:                         begin
321:                                 yield(self)
322:                         ensure
323:                                 unlock if @locked
324:                         end
325:                 end

[Source]

     # File lib/phusion_passenger/analytics_logger.rb, line 333
333:                 def unlock
334:                         raise if !@locked
335:                         @mutex.unlock
336:                         @locked = false
337:                 end

[Validate]