Sha256: 268c9626d4548734159deea469831cb47825b7be012579d25d33bfe5c4cfa0da
Contents?: true
Size: 455 Bytes
Versions: 5
Compression:
Stored size: 455 Bytes
Contents
require "agent/errors" module Agent class BlockingOnce < Once def perform @mutex.synchronize do return nil, error if @performed begin value = yield @performed = true return value, nil rescue Errors::Rollback return nil, rollback_error end end end protected def rollback_error @rollback_error ||= Error.new("rolled back") end end end
Version data entries
5 entries across 5 versions & 1 rubygems