Explain why we have explicit marshaling methods

This commit is contained in:
David Heinemeier Hansson 2018-09-30 16:55:16 -07:00 committed by GitHub
parent 9d7d6336d7
commit b707a6d0eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -235,11 +235,15 @@ def encode!
end
end
def marshal_dump
# Exceptions are marshaled when using the parallel test runner with DRb, so we need
# to ensure that references to the template object can be marshaled as well. This means forgoing
# the marshalling of the compiler mutex and instantiating that again on unmarshaling.
def marshal_dump # :nodoc:
[ @source, @identifier, @handler, @compiled, @original_encoding, @locals, @virtual_path, @updated_at, @formats, @variants ]
end
def marshal_load(array)
def marshal_load(array) # :nodoc:
@source, @identifier, @handler, @compiled, @original_encoding, @locals, @virtual_path, @updated_at, @formats, @variants = *array
@compile_mutex = Mutex.new
end