A big part of the threading code has been rewritten to take advantage of C++11 features. All functions that needed the return type to be specified (like async, thenR, bind, etc) now have a replacement that does not need it to be specified.
Actors are now more powerful. You do not need to inherit from Trackable
anymore (and your actor won’t work if you do). This has fixed a lot of bugs,
including compilation errors in some cases and crashes in some other cases.
When you use qi::bind on an actor now, the call will be stranded, which makes things way easier to write:
signal.connect(qi::bind(&Class::method, myActor));
future.then(qi::bind(&Class::method2, myActor, _1));
Strand::schedulerFor is now most of the time useless since qi::bind does
almost the same thing.
qi::ApplicationSession::start has been replaced by
qi::ApplicationSession::startSessionFuture::thenR has been replaced by Future::then, you don’t need to
specify template argumentsFuture::andThenR has been replaced by Future::andThen, you don’t need
to specify template argumentsqi::bind and friends
(unless it is the return type, in the same cases as boost::bind)qi::track and friendsasync functionsasync(Functor, Duration) have been replaced by asyncDelay(Functor,
Duration)async(Functor, TimePoint) have been replaced by asyncAt(Functor,
TimePoint)qi::bind if you needQI_TYPE_ENUM_REGISTER has been replaced by QI_TYPE_ENUM and is meant
to be put in header filesSession::callModule has been replaced by Session::asyncCallModule, the
behavior has not changed, the call has always been asynchronousFuture::isCancelable has become useless, all futures are now cancelable