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::startSession
Future::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