Methods
Public Class methods
[ show 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
[ show 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
[ show 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
[ show 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
[ show 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