threads::shared provides the capability to share variables between threads such that changing the value in one thread makes that change visible in another thread. Object::InsideOut is unique among inside-out object support modules (and, to my knowledge, all other object support modules, as well) in providing support for threads::shared, thus giving you the capability to share objects between threads. As for how to do it, you'd have to look at the module's code to see how. It is not a trivial process.
None of these are "deal-killers" for inside-out objects, but they do require awareness and management of complexity. That said, I think jdhedden has done a great job with Object::InsideOut (as he did with Math::Random::MT::Auto) in creating something that might well serve as the gold-standard in the category.
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.