I used Marshal to dump some structures which contained Mutex and Queue objects. After the upgrade to Ruby 1.8.6 I was
not able to load them anymore. It seems as I dumped them, I used the pure-Ruby implementation of those classes and now
Ruby defaults to the C implementation of them. These generate incompatible dumps!
Using this simple program:
require 'thread'
a = Queue.new
a << "test"
p Marshal.dump(a)
I get:
- thread.rb: "\004\bo:\nQueue\a:\t@que[\006\"\ttest:\r@waiting[\000"
- thread.so: "\004\bU:\nQueue\"\021\004\b[\ai\000\"\ttest" |