software transactional memory for Ruby