Ocaml, while impressively fast, does not handle threading very well, as far as I know (and the same is true of most current functional languages).
Moving from C++ to a different language is probably harder than moving from, say, C -- most native-compiling languages have a C FFI but not C++.
Both are not insurmountable -- the first can be solved by using a multi-process design (with pipes and shared memory -- not sure how well SHM works with Ocaml though); the second is probably a deal-breaker. Python is an exception thanks to Boost::Python.