Что вам нужно, мой друг, это программное обеспечение транзакционной памяти.Попробуйте реализацию STM, с которой я играл в JRuby (вам нужно получить код в репозитории, так как я не упаковал его для релиза).
Также ознакомьтесь с Ruby atomic, над которым я работаю http://github.com/saivenkat/ruby-atomic. Дает вам тип операций CAS на МРТ.Это немного ниже уровня, но поможет вам с той же проблемой.Я не написал Transactional Memory для MRI, но с инфраструктурой CAS она не будет длинной:)
PS Stackoverflow не позволяет мне публиковать более одной ссылки, так как я не использовал ее систему.много.Так что загляните на мультивселенную площадку в Codehaus для STM в JRuby
- Sai Venkat