Commit f50647d0 authored by Dominik Charousset's avatar Dominik Charousset

Integrate review feedback

parent 3c34148d
......@@ -20,7 +20,6 @@
#include <vector>
#include "caf/abstract_actor.hpp"
#include "caf/actor_cast.hpp"
#include "caf/actor_clock.hpp"
#include "caf/actor_control_block.hpp"
......
......@@ -132,7 +132,8 @@ public:
}
private:
local_actor* self_ptr() const;
/// Returns a downcasted version of `self_`.
local_actor* self_dptr() const;
execution_unit* context();
......
......@@ -68,7 +68,7 @@ bool response_promise::async() const {
return id_.is_async();
}
local_actor* response_promise::self_ptr() const {
local_actor* response_promise::self_dptr() const {
// TODO: We require that self_ was constructed by using a local_actor*. The
// type erasure performed by strong_actor_ptr hides that fact. We
// probably should use a different pointer type such as
......@@ -80,7 +80,7 @@ local_actor* response_promise::self_ptr() const {
}
execution_unit* response_promise::context() {
return self_ == nullptr ? nullptr : self_ptr()->context();
return self_ == nullptr ? nullptr : self_dptr()->context();
}
void response_promise::deliver_impl(message msg) {
......@@ -89,18 +89,18 @@ void response_promise::deliver_impl(message msg) {
CAF_LOG_DEBUG("drop response: invalid promise");
return;
}
auto self = self_ptr();
auto dptr = self_dptr();
if (!stages_.empty()) {
auto next = std::move(stages_.back());
stages_.pop_back();
detail::profiled_send(self, std::move(source_), next, id_,
std::move(stages_), self->context(), std::move(msg));
detail::profiled_send(dptr, std::move(source_), next, id_,
std::move(stages_), dptr->context(), std::move(msg));
self_.reset();
return;
}
if (source_) {
detail::profiled_send(self, self_, source_, id_.response_id(), no_stages,
self->context(), std::move(msg));
detail::profiled_send(dptr, self_, source_, id_.response_id(), no_stages,
dptr->context(), std::move(msg));
self_.reset();
source_.reset();
return;
......@@ -118,9 +118,9 @@ void response_promise::delegate_impl(abstract_actor* receiver, message msg) {
CAF_LOG_DEBUG("drop response: invalid promise");
return;
}
auto self = self_ptr();
detail::profiled_send(self, std::move(source_), receiver, id_,
std::move(stages_), self->context(), std::move(msg));
auto dptr = self_dptr();
detail::profiled_send(dptr, std::move(source_), receiver, id_,
std::move(stages_), dptr->context(), std::move(msg));
self_.reset();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment