Commit 23f6f248 authored by Dominik Charousset's avatar Dominik Charousset

Rename CAF_REQUIRE to CAF_ASSERT

parent d8e5811e
......@@ -123,16 +123,16 @@
// import backtrace and backtrace_symbols_fd into caf::detail
#ifndef CAF_ENABLE_RUNTIME_CHECKS
# define CAF_REQUIRE(unused) static_cast<void>(0)
# define CAF_ASSERT(unused) static_cast<void>(0)
#elif defined(CAF_WINDOWS) || defined(CAF_BSD)
# define CAF_REQUIRE(stmt) \
# define CAF_ASSERT(stmt) \
if (static_cast<bool>(stmt) == false) { \
printf("%s:%u: requirement failed '%s'\n", __FILE__, __LINE__, #stmt); \
abort(); \
} static_cast<void>(0)
#else // defined(CAF_LINUX) || defined(CAF_MACOS)
# include <execinfo.h>
# define CAF_REQUIRE(stmt) \
# define CAF_ASSERT(stmt) \
if (static_cast<bool>(stmt) == false) { \
printf("%s:%u: requirement failed '%s'\n", __FILE__, __LINE__, #stmt); \
void* array[10]; \
......
......@@ -56,7 +56,7 @@ class behavior_stack {
}
inline behavior& back() {
CAF_REQUIRE(!empty());
CAF_ASSERT(!empty());
return m_elements.back();
}
......
......@@ -127,7 +127,7 @@ class double_ended_queue {
// acquires only one lock
void append(pointer value) {
CAF_REQUIRE(value != nullptr);
CAF_ASSERT(value != nullptr);
node* tmp = new node(value);
lock_guard guard(m_tail_lock);
// publish & swing last forward
......@@ -137,23 +137,23 @@ class double_ended_queue {
// acquires both locks
void prepend(pointer value) {
CAF_REQUIRE(value != nullptr);
CAF_ASSERT(value != nullptr);
node* tmp = new node(value);
node* first = nullptr;
// acquire both locks since we might touch m_last too
lock_guard guard1(m_head_lock);
lock_guard guard2(m_tail_lock);
first = m_head.load();
CAF_REQUIRE(first != nullptr);
CAF_ASSERT(first != nullptr);
auto next = first->next.load();
// m_first always points to a dummy with no value,
// hence we put the new element second
if (next == nullptr) {
// queue is empty
CAF_REQUIRE(first == m_tail);
CAF_ASSERT(first == m_tail);
m_tail = tmp;
} else {
CAF_REQUIRE(first != m_tail);
CAF_ASSERT(first != m_tail);
tmp->next = next;
}
first->next = tmp;
......@@ -187,7 +187,7 @@ class double_ended_queue {
{ // lifetime scope of guards
lock_guard guard1(m_head_lock);
lock_guard guard2(m_tail_lock);
CAF_REQUIRE(m_head != nullptr);
CAF_ASSERT(m_head != nullptr);
last.reset(m_tail.load());
if (last.get() == m_head.load()) {
last.release();
......@@ -195,7 +195,7 @@ class double_ended_queue {
}
result = last->value;
m_tail = find_predecessor(last.get());
CAF_REQUIRE(m_tail != nullptr);
CAF_ASSERT(m_tail != nullptr);
m_tail.load()->next = nullptr;
}
return result;
......
......@@ -72,12 +72,12 @@ class limited_vector {
}
void resize(size_type s) {
CAF_REQUIRE(s <= MaxSize);
CAF_ASSERT(s <= MaxSize);
m_size = s;
}
limited_vector(std::initializer_list<T> init) : m_size(init.size()) {
CAF_REQUIRE(init.size() <= MaxSize);
CAF_ASSERT(init.size() <= MaxSize);
std::copy(init.begin(), init.end(), begin());
}
......@@ -91,7 +91,7 @@ class limited_vector {
// dummy SFINAE argument
typename std::iterator_traits<InputIterator>::pointer = 0) {
auto dist = std::distance(first, last);
CAF_REQUIRE(dist >= 0);
CAF_ASSERT(dist >= 0);
resize(static_cast<size_t>(dist));
std::copy(first, last, begin());
}
......@@ -121,22 +121,22 @@ class limited_vector {
}
void push_back(const_reference what) {
CAF_REQUIRE(!full());
CAF_ASSERT(!full());
m_data[m_size++] = what;
}
void pop_back() {
CAF_REQUIRE(!empty());
CAF_ASSERT(!empty());
--m_size;
}
reference at(size_type pos) {
CAF_REQUIRE(pos < m_size);
CAF_ASSERT(pos < m_size);
return m_data[pos];
}
const_reference at(size_type pos) const {
CAF_REQUIRE(pos < m_size);
CAF_ASSERT(pos < m_size);
return m_data[pos];
}
......@@ -197,22 +197,22 @@ class limited_vector {
}
reference front() {
CAF_REQUIRE(!empty());
CAF_ASSERT(!empty());
return m_data[0];
}
const_reference front() const {
CAF_REQUIRE(!empty());
CAF_ASSERT(!empty());
return m_data[0];
}
reference back() {
CAF_REQUIRE(!empty());
CAF_ASSERT(!empty());
return m_data[m_size - 1];
}
const_reference back() const {
CAF_REQUIRE(!empty());
CAF_ASSERT(!empty());
return m_data[m_size - 1];
}
......@@ -226,7 +226,7 @@ class limited_vector {
template <class InputIterator>
void insert(iterator pos, InputIterator first, InputIterator last) {
CAF_REQUIRE(first <= last);
CAF_ASSERT(first <= last);
auto num_elements = static_cast<size_t>(std::distance(first, last));
if ((size() + num_elements) > MaxSize) {
throw std::length_error("limited_vector::insert: too much elements");
......
......@@ -68,7 +68,7 @@ struct rc_storage : public ref_counted {
rc_storage(Ts&&... xs)
: instance(intrusive_ptr<ref_counted>(this, false),
std::forward<Ts>(xs)...) {
CAF_REQUIRE(get_reference_count() >= 1);
CAF_ASSERT(get_reference_count() >= 1);
}
};
......@@ -162,7 +162,7 @@ class basic_memory_cache : public memory_cache {
// allocate cache on-the-fly
if (!m_cache) {
m_cache.reset(new storage, false); // starts with ref count of 1
CAF_REQUIRE(m_cache->unique());
CAF_ASSERT(m_cache->unique());
}
auto res = m_cache->next();
if (m_cache->has_next()) {
......
......@@ -48,7 +48,7 @@ const typename detail::type_at<N, Ts...>::type&
get(const detail::pseudo_tuple<Ts...>& tv) {
static_assert(N < sizeof...(Ts), "N >= tv.size()");
auto vp = tv.at(N);
CAF_REQUIRE(vp != nullptr);
CAF_ASSERT(vp != nullptr);
return *reinterpret_cast<const typename detail::type_at<N, Ts...>::type*>(vp);
}
......@@ -56,7 +56,7 @@ template <size_t N, class... Ts>
typename detail::type_at<N, Ts...>::type& get(detail::pseudo_tuple<Ts...>& tv) {
static_assert(N < sizeof...(Ts), "N >= tv.size()");
auto vp = tv.mutable_at(N);
CAF_REQUIRE(vp != nullptr);
CAF_ASSERT(vp != nullptr);
return *reinterpret_cast<typename detail::type_at<N, Ts...>::type*>(vp);
}
......
......@@ -83,7 +83,7 @@ class single_reader_queue {
* @warning Call only from the reader (owner).
*/
enqueue_result enqueue(pointer new_element) {
CAF_REQUIRE(new_element != nullptr);
CAF_ASSERT(new_element != nullptr);
pointer e = m_stack.load();
for (;;) {
if (!e) {
......@@ -111,7 +111,7 @@ class single_reader_queue {
return true;
}
auto ptr = m_stack.load();
CAF_REQUIRE(ptr != nullptr);
CAF_ASSERT(ptr != nullptr);
return !is_dummy(ptr);
}
......@@ -120,7 +120,7 @@ class single_reader_queue {
* @warning Call only from the reader (owner).
*/
bool empty() {
CAF_REQUIRE(!closed());
CAF_ASSERT(!closed());
return m_cache.empty() && m_head == nullptr && is_dummy(m_stack.load());
}
......@@ -145,7 +145,7 @@ class single_reader_queue {
bool try_block() {
auto e = stack_empty_dummy();
bool res = m_stack.compare_exchange_strong(e, reader_blocked_dummy());
CAF_REQUIRE(e != nullptr);
CAF_ASSERT(e != nullptr);
// return true in case queue was already blocked
return res || e == reader_blocked_dummy();
}
......@@ -239,7 +239,7 @@ class single_reader_queue {
template <class Mutex, class CondVar>
void synchronized_await(Mutex& mtx, CondVar& cv) {
CAF_REQUIRE(!closed());
CAF_ASSERT(!closed());
if (!can_fetch_more() && try_block()) {
std::unique_lock<Mutex> guard(mtx);
while (blocked()) {
......@@ -250,7 +250,7 @@ class single_reader_queue {
template <class Mutex, class CondVar, class TimePoint>
bool synchronized_await(Mutex& mtx, CondVar& cv, const TimePoint& timeout) {
CAF_REQUIRE(!closed());
CAF_ASSERT(!closed());
if (!can_fetch_more() && try_block()) {
std::unique_lock<Mutex> guard(mtx);
while (blocked()) {
......@@ -275,26 +275,26 @@ class single_reader_queue {
// atomically sets m_stack back and enqueues all elements to the cache
bool fetch_new_data(pointer end_ptr) {
CAF_REQUIRE(end_ptr == nullptr || end_ptr == stack_empty_dummy());
CAF_ASSERT(end_ptr == nullptr || end_ptr == stack_empty_dummy());
pointer e = m_stack.load();
// must not be called on a closed queue
CAF_REQUIRE(e != nullptr);
CAF_ASSERT(e != nullptr);
// fetching data while blocked is an error
CAF_REQUIRE(e != reader_blocked_dummy());
CAF_ASSERT(e != reader_blocked_dummy());
// it's enough to check this once, since only the owner is allowed
// to close the queue and only the owner is allowed to call this
// member function
while (e != end_ptr) {
if (m_stack.compare_exchange_weak(e, end_ptr)) {
// fetching data while blocked is an error
CAF_REQUIRE(e != reader_blocked_dummy());
CAF_ASSERT(e != reader_blocked_dummy());
if (is_dummy(e)) {
// only use-case for this is closing a queue
CAF_REQUIRE(end_ptr == nullptr);
CAF_ASSERT(end_ptr == nullptr);
return false;
}
while (e) {
CAF_REQUIRE(!is_dummy(e));
CAF_ASSERT(!is_dummy(e));
auto next = e->next;
e->next = m_head;
m_head = e;
......
......@@ -103,18 +103,18 @@ class tuple_vals : public message_data {
}
const void* at(size_t pos) const override {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
return tup_ptr_access<0, sizeof...(Ts)>::get(pos, m_data);
}
void* mutable_at(size_t pos) override {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
return const_cast<void*>(at(pos));
}
bool match_element(size_t pos, uint16_t typenr,
const std::type_info* rtti) const override {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
auto& et = m_types[pos];
if (et.first != typenr) {
return false;
......
......@@ -148,7 +148,7 @@ class message {
*/
template <class T>
const T& get_as(size_t p) const {
CAF_REQUIRE(match_element(p, detail::type_nr<T>::value, &typeid(T)));
CAF_ASSERT(match_element(p, detail::type_nr<T>::value, &typeid(T)));
return *reinterpret_cast<const T*>(at(p));
}
......@@ -157,7 +157,7 @@ class message {
*/
template <class T>
T& get_as_mutable(size_t p) {
CAF_REQUIRE(match_element(p, detail::type_nr<T>::value, &typeid(T)));
CAF_ASSERT(match_element(p, detail::type_nr<T>::value, &typeid(T)));
return *reinterpret_cast<T*>(mutable_at(p));
}
......
......@@ -126,7 +126,7 @@ class optional {
* Returns the value.
*/
T& operator*() {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return m_value;
}
......@@ -134,7 +134,7 @@ class optional {
* Returns the value.
*/
const T& operator*() const {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return m_value;
}
......@@ -142,7 +142,7 @@ class optional {
* Returns the value.
*/
const T* operator->() const {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return &m_value;
}
......@@ -150,7 +150,7 @@ class optional {
* Returns the value.
*/
T* operator->() {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return &m_value;
}
......@@ -158,7 +158,7 @@ class optional {
* Returns the value.
*/
T& get() {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return m_value;
}
......@@ -166,7 +166,7 @@ class optional {
* Returns the value.
*/
const T& get() const {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return m_value;
}
......@@ -186,7 +186,7 @@ class optional {
}
template <class V>
void cr(V&& value) {
CAF_REQUIRE(!valid());
CAF_ASSERT(!valid());
m_valid = true;
new (&m_value) T(std::forward<V>(value));
}
......@@ -232,32 +232,32 @@ class optional<T&> {
}
T& operator*() {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return *m_value;
}
const T& operator*() const {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return *m_value;
}
T* operator->() {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return m_value;
}
const T* operator->() const {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return m_value;
}
T& get() {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return *m_value;
}
const T& get() const {
CAF_REQUIRE(valid());
CAF_ASSERT(valid());
return *m_value;
}
......
......@@ -86,7 +86,7 @@ class coordinator : public abstract_coordinator {
}
resumable::resume_result resume(execution_unit* ptr, size_t) override {
CAF_LOG_DEBUG("shutdown_helper::resume => shutdown worker");
CAF_REQUIRE(ptr != nullptr);
CAF_ASSERT(ptr != nullptr);
std::unique_lock<std::mutex> guard(mtx);
last_worker = ptr;
cv.notify_all();
......
......@@ -193,7 +193,7 @@ class profiled_coordinator : public coordinator<Policy> {
void stop_measuring(size_t worker, actor_id job) {
auto m = measurement::take();
auto& w = m_worker_states[worker];
CAF_REQUIRE(job == w.current);
CAF_ASSERT(job == w.current);
auto delta = m - w.job;
// It's not possible that the wallclock timer is less than actual CPU time
// spent. Due to resolution mismatches of the C++ high-resolution clock and
......
......@@ -51,7 +51,7 @@ class worker : public execution_unit {
}
void start() {
CAF_REQUIRE(m_this_thread.get_id() == std::thread::id{});
CAF_ASSERT(m_this_thread.get_id() == std::thread::id{});
auto this_worker = this;
m_this_thread = std::thread{[this_worker] {
CAF_LOGF_TRACE("id = " << this_worker->id());
......@@ -67,7 +67,7 @@ class worker : public execution_unit {
* source, i.e., from any other thread.
*/
void external_enqueue(job_ptr job) {
CAF_REQUIRE(job != nullptr);
CAF_ASSERT(job != nullptr);
CAF_LOG_TRACE("id = " << id() << " actor id " << id_of(job));
m_policy.external_enqueue(this, job);
}
......@@ -78,7 +78,7 @@ class worker : public execution_unit {
* @warning Must not be called from other threads.
*/
void exec_later(job_ptr job) override {
CAF_REQUIRE(job != nullptr);
CAF_ASSERT(job != nullptr);
CAF_LOG_TRACE("id = " << id() << " actor id " << id_of(job));
m_policy.internal_enqueue(this, job);
}
......@@ -122,7 +122,7 @@ class worker : public execution_unit {
// scheduling loop
for (;;) {
auto job = m_policy.dequeue(this);
CAF_REQUIRE(job != nullptr);
CAF_ASSERT(job != nullptr);
CAF_LOG_DEBUG("resume actor " << id_of(job));
CAF_PUSH_AID_FROM_PTR(dynamic_cast<abstract_actor*>(job));
m_policy.before_resume(this, job);
......
......@@ -85,7 +85,7 @@ void replace_all(std::string& str,
auto i = next(std::begin(str));
while (i != std::end(str)) {
auto before = std::distance(std::begin(str), i);
CAF_REQUIRE(before >= 0);
CAF_ASSERT(before >= 0);
str.replace(i, i + WhatSize - 1, with);
// i became invalidated -> use new iterator pointing
// to the first character after the replaced text
......
......@@ -263,7 +263,7 @@ class uniform_type_info {
template <class T>
uniform_value create_impl(const uniform_value& other) const {
if (other) {
CAF_REQUIRE(other->ti == this);
CAF_ASSERT(other->ti == this);
auto ptr = reinterpret_cast<const T*>(other->val);
return make_uniform_value<T>(this, *ptr);
}
......
......@@ -132,7 +132,7 @@ bool abstract_actor::link_impl(linking_operation op, const actor_addr& other) {
case remove_link_op:
return remove_link_impl(other);
default:
CAF_REQUIRE(op == remove_backlink_op);
CAF_ASSERT(op == remove_backlink_op);
return remove_backlink_impl(other);
}
}
......@@ -214,7 +214,7 @@ actor_addr abstract_actor::address() const {
void abstract_actor::cleanup(uint32_t reason) {
CAF_LOG_TRACE(CAF_ARG(reason));
CAF_REQUIRE(reason != exit_reason::not_exited);
CAF_ASSERT(reason != exit_reason::not_exited);
// move everyhting out of the critical section before processing it
attachable_ptr head;
{ // lifetime scope of guard
......
......@@ -41,7 +41,7 @@ actor_namespace::actor_namespace(backend& be) : m_backend(be) {
}
void actor_namespace::write(serializer* sink, const actor_addr& addr) {
CAF_REQUIRE(sink != nullptr);
CAF_ASSERT(sink != nullptr);
if (!addr) {
node_id::host_id_type zero;
std::fill(zero.begin(), zero.end(), 0);
......@@ -62,7 +62,7 @@ void actor_namespace::write(serializer* sink, const actor_addr& addr) {
}
actor_addr actor_namespace::read(deserializer* source) {
CAF_REQUIRE(source != nullptr);
CAF_ASSERT(source != nullptr);
node_id::host_id_type hid;
auto aid = source->read<uint32_t>(); // actor id
source->read_raw(node_id::host_id_size, hid.data()); // host id
......
......@@ -37,7 +37,7 @@ actor_pool::round_robin::round_robin(const round_robin&) : m_pos(0) {
void actor_pool::round_robin::operator()(uplock& guard, const actor_vec& vec,
mailbox_element_ptr& ptr,
execution_unit* host) {
CAF_REQUIRE(!vec.empty());
CAF_ASSERT(!vec.empty());
actor selected = vec[m_pos++ % vec.size()];
guard.unlock();
selected->enqueue(std::move(ptr), host);
......@@ -46,7 +46,7 @@ void actor_pool::round_robin::operator()(uplock& guard, const actor_vec& vec,
void actor_pool::broadcast::operator()(uplock&, const actor_vec& vec,
mailbox_element_ptr& ptr,
execution_unit* host) {
CAF_REQUIRE(!vec.empty());
CAF_ASSERT(!vec.empty());
for (size_t i = 1; i < vec.size(); ++i) {
vec[i]->enqueue(ptr->sender, ptr->mid, ptr->msg, host);
}
......
......@@ -112,7 +112,7 @@ void actor_registry::dec_running() {
}
void actor_registry::await_running_count_equal(size_t expected) {
CAF_REQUIRE(expected == 0 || expected == 1);
CAF_ASSERT(expected == 0 || expected == 1);
CAF_LOG_TRACE(CAF_ARG(expected));
std::unique_lock<std::mutex> guard{m_running_mtx};
while (m_running != expected) {
......
......@@ -91,7 +91,7 @@ void behavior_impl::handle_timeout() {
}
behavior_impl::pointer behavior_impl::or_else(const pointer& other) {
CAF_REQUIRE(other != nullptr);
CAF_ASSERT(other != nullptr);
return make_counted<combinator>(this, other);
}
......
......@@ -45,7 +45,7 @@ auto concatenated_tuple::make(std::initializer_list<cow_ptr> xs) -> cow_ptr {
}
void* concatenated_tuple::mutable_at(size_t pos) {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
auto selected = select(pos);
return selected.first->mutable_at(selected.second);
}
......@@ -59,7 +59,7 @@ message_data::cow_ptr concatenated_tuple::copy() const {
}
const void* concatenated_tuple::at(size_t pos) const {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
auto selected = select(pos);
return selected.first->at(selected.second);
}
......@@ -75,13 +75,13 @@ uint32_t concatenated_tuple::type_token() const {
}
const char* concatenated_tuple::uniform_name_at(size_t pos) const {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
auto selected = select(pos);
return selected.first->uniform_name_at(selected.second);
}
uint16_t concatenated_tuple::type_nr_at(size_t pos) const {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
auto selected = select(pos);
return selected.first->type_nr_at(selected.second);
}
......
......@@ -37,7 +37,7 @@ decorated_tuple::cow_ptr decorated_tuple::make(cow_ptr d, vector_type v) {
}
void* decorated_tuple::mutable_at(size_t pos) {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
return m_decorated->mutable_at(m_mapping[pos]);
}
......@@ -50,7 +50,7 @@ message_data::cow_ptr decorated_tuple::copy() const {
}
const void* decorated_tuple::at(size_t pos) const {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
return m_decorated->at(m_mapping[pos]);
}
......@@ -75,7 +75,7 @@ decorated_tuple::decorated_tuple(cow_ptr&& d, vector_type&& v)
: m_decorated(std::move(d)),
m_mapping(std::move(v)),
m_type_token(0xFFFFFFFF) {
CAF_REQUIRE(m_mapping.empty()
CAF_ASSERT(m_mapping.empty()
|| *(std::max_element(m_mapping.begin(), m_mapping.end()))
< static_cast<const cow_ptr&>(m_decorated)->size());
// calculate type token
......
......@@ -35,7 +35,7 @@ message make(abstract_actor* self, uint32_t reason) {
} // namespace <anonymous>
void default_attachable::actor_exited(abstract_actor* self, uint32_t reason) {
CAF_REQUIRE(self->address() != m_observer);
CAF_ASSERT(self->address() != m_observer);
auto factory = m_type == monitor ? &make<down_msg> : &make<exit_msg>;
auto ptr = actor_cast<abstract_actor_ptr>(m_observer);
ptr->enqueue(self->address(), message_id{}.with_high_priority(),
......
......@@ -33,7 +33,7 @@ forwarding_actor_proxy::forwarding_actor_proxy(actor_id aid, node_id nid,
actor mgr)
: actor_proxy(aid, nid),
m_manager(mgr) {
CAF_REQUIRE(mgr != invalid_actor);
CAF_ASSERT(mgr != invalid_actor);
CAF_LOG_INFO(CAF_ARG(aid) << ", " << CAF_TARG(nid, to_string));
}
......
......@@ -228,8 +228,8 @@ class local_group_proxy : public local_group {
template <class... Ts>
local_group_proxy(actor remote_broker, Ts&&... xs)
: super(false, std::forward<Ts>(xs)...) {
CAF_REQUIRE(m_broker == invalid_actor);
CAF_REQUIRE(remote_broker != invalid_actor);
CAF_ASSERT(m_broker == invalid_actor);
CAF_ASSERT(remote_broker != invalid_actor);
m_broker = std::move(remote_broker);
m_proxy_broker = spawn<proxy_broker, hidden>(this);
}
......@@ -357,7 +357,7 @@ class local_group_module : public abstract_group::module {
void serialize(local_group* ptr, serializer* sink) {
// serialize identifier & broker
sink->write_value(ptr->identifier());
CAF_REQUIRE(ptr->broker() != invalid_actor);
CAF_ASSERT(ptr->broker() != invalid_actor);
m_actor_utype->serialize(&ptr->broker(), sink);
}
......
......@@ -159,14 +159,14 @@ void local_actor::handle_timeout(behavior& bhvr, uint32_t timeout_id) {
}
// auto-remove behavior for blocking actors
if (is_blocking()) {
CAF_REQUIRE(m_bhvr_stack.back() == bhvr);
CAF_ASSERT(m_bhvr_stack.back() == bhvr);
m_bhvr_stack.pop_back();
return;
}
// request next timeout for non-blocking (i.e. event-based) actors
// if behavior stack was not modified by calling become()/unbecome()
if (m_bhvr_stack.back() == bhvr) {
CAF_REQUIRE(bhvr.timeout().valid());
CAF_ASSERT(bhvr.timeout().valid());
request_timeout(bhvr.timeout());
}
}
......@@ -208,7 +208,7 @@ msg_type filter_msg(local_actor* self, mailbox_element& node) {
if (msg.match_element<timeout_msg>(0)) {
auto& tm = msg.get_as<timeout_msg>(0);
auto tid = tm.timeout_id;
CAF_REQUIRE(!mid.valid());
CAF_ASSERT(!mid.valid());
if (self->is_active_timeout(tid)) {
return msg_type::timeout;
}
......@@ -216,7 +216,7 @@ msg_type filter_msg(local_actor* self, mailbox_element& node) {
}
if (msg.match_element<exit_msg>(0)) {
auto& em = msg.get_as<exit_msg>(0);
CAF_REQUIRE(!mid.valid());
CAF_ASSERT(!mid.valid());
// make sure to get rid of attachables if they're no longer needed
self->unlink_from(em.source);
if (self->trap_exit() == false) {
......@@ -314,7 +314,7 @@ optional<message> post_process_invoke_res(local_actor* self,
invoke_message_result local_actor::invoke_message(mailbox_element_ptr& ptr,
behavior& fun,
message_id awaited_id) {
CAF_REQUIRE(ptr != nullptr);
CAF_ASSERT(ptr != nullptr);
CAF_LOG_TRACE(CAF_TSARG(*ptr) << ", " << CAF_MARG(awaited_id, integer_value));
switch (filter_msg(this, *ptr)) {
case msg_type::normal_exit:
......@@ -409,7 +409,7 @@ message_id local_actor::new_request_id(message_priority mp) {
}
void local_actor::mark_arrived(message_id mid) {
CAF_REQUIRE(mid.is_response());
CAF_ASSERT(mid.is_response());
pending_response_predicate predicate{mid};
m_pending_responses.remove_if(predicate);
}
......@@ -419,7 +419,7 @@ bool local_actor::awaits_response() const {
}
bool local_actor::awaits(message_id mid) const {
CAF_REQUIRE(mid.is_response());
CAF_ASSERT(mid.is_response());
pending_response_predicate predicate{mid};
return std::any_of(m_pending_responses.begin(), m_pending_responses.end(),
predicate);
......@@ -468,7 +468,7 @@ void local_actor::launch(execution_unit* eu, bool lazy, bool hide) {
while (resume(nullptr, max_throughput) != resumable::done) {
// await new data before resuming actor
await_data();
CAF_REQUIRE(mailbox().blocked() == false);
CAF_ASSERT(mailbox().blocked() == false);
}
detach_from_scheduler();
}).detach();
......@@ -547,7 +547,7 @@ resumable::resume_result local_actor::resume(execution_unit* eu,
CAF_LOG_TRACE("");
if (is_blocking()) {
// actor lives in its own thread
CAF_REQUIRE(dynamic_cast<blocking_actor*>(this) != 0);
CAF_ASSERT(dynamic_cast<blocking_actor*>(this) != 0);
auto self = static_cast<blocking_actor*>(this);
uint32_t rsn = exit_reason::normal;
std::exception_ptr eptr = nullptr;
......@@ -605,7 +605,7 @@ resumable::resume_result local_actor::resume(execution_unit* eu,
};
// actors without behavior or that have already defined
// an exit reason must not be resumed
CAF_REQUIRE(!is_initialized()
CAF_ASSERT(!is_initialized()
|| (has_behavior()
&& planned_exit_reason() == exit_reason::not_exited));
std::exception_ptr eptr = nullptr;
......@@ -654,7 +654,7 @@ resumable::resume_result local_actor::resume(execution_unit* eu,
}
break;
case im_skipped:
CAF_REQUIRE(ptr != nullptr);
CAF_ASSERT(ptr != nullptr);
push_to_cache(std::move(ptr));
break;
case im_dropped:
......
......@@ -103,7 +103,7 @@ class logging_impl : public logging {
m_queue.synchronized_await(m_queue_mtx, m_queue_cv);
// read & process event
event.reset(m_queue.try_pop());
CAF_REQUIRE(event != nullptr);
CAF_ASSERT(event != nullptr);
if (event->msg.empty()) {
out.close();
return;
......
......@@ -52,12 +52,12 @@ void message::swap(message& other) {
}
void* message::mutable_at(size_t p) {
CAF_REQUIRE(m_vals);
CAF_ASSERT(m_vals);
return m_vals->mutable_at(p);
}
const void* message::at(size_t p) const {
CAF_REQUIRE(m_vals);
CAF_ASSERT(m_vals);
return m_vals->at(p);
}
......@@ -71,12 +71,12 @@ const char* message::uniform_name_at(size_t pos) const {
}
bool message::equals(const message& other) const {
CAF_REQUIRE(m_vals);
CAF_ASSERT(m_vals);
return m_vals->equals(*other.vals());
}
message message::drop(size_t n) const {
CAF_REQUIRE(m_vals);
CAF_ASSERT(m_vals);
if (n == 0) {
return *this;
}
......@@ -90,7 +90,7 @@ message message::drop(size_t n) const {
}
message message::drop_right(size_t n) const {
CAF_REQUIRE(m_vals);
CAF_ASSERT(m_vals);
if (n == 0) {
return *this;
}
......
......@@ -53,12 +53,12 @@ class message_builder::dynamic_msg_data : public detail::message_data {
~dynamic_msg_data();
const void* at(size_t pos) const override {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
return m_elements[pos]->val;
}
void* mutable_at(size_t pos) override {
CAF_REQUIRE(pos < size());
CAF_ASSERT(pos < size());
return m_elements[pos]->val;
}
......@@ -72,7 +72,7 @@ class message_builder::dynamic_msg_data : public detail::message_data {
bool match_element(size_t pos, uint16_t typenr,
const std::type_info* rtti) const override {
CAF_REQUIRE(typenr != 0 || rtti != nullptr);
CAF_ASSERT(typenr != 0 || rtti != nullptr);
auto uti = m_elements[pos]->ti;
if (uti->type_nr() != typenr) {
return false;
......
......@@ -27,7 +27,7 @@ namespace caf {
response_promise::response_promise(const actor_addr& from, const actor_addr& to,
const message_id& id)
: m_from(from), m_to(to), m_id(id) {
CAF_REQUIRE(id.is_response() || !id.valid());
CAF_ASSERT(id.is_response() || !id.valid());
}
void response_promise::deliver(message msg) const {
......
......@@ -131,7 +131,7 @@ logging* singletons::get_logger() {
}
std::atomic<abstract_singleton*>& singletons::get_plugin_singleton(size_t id) {
CAF_REQUIRE(id < max_plugins);
CAF_ASSERT(id < max_plugins);
return s_plugins[id];
}
......
......@@ -37,7 +37,7 @@ sync_request_bouncer::sync_request_bouncer(uint32_t r)
void sync_request_bouncer::operator()(const actor_addr& sender,
const message_id& mid) const {
CAF_REQUIRE(rsn != exit_reason::not_exited);
CAF_ASSERT(rsn != exit_reason::not_exited);
if (sender && mid.is_request()) {
auto ptr = actor_cast<abstract_actor_ptr>(sender);
ptr->enqueue(invalid_actor_addr, mid.response_id(),
......
......@@ -30,7 +30,7 @@ bool is_wildcard(const meta_element& me) {
bool match_element(const meta_element& me, const message& msg,
size_t pos, void** storage) {
CAF_REQUIRE(me.typenr != 0 || me.type != nullptr);
CAF_ASSERT(me.typenr != 0 || me.type != nullptr);
if (!msg.match_element(pos, me.typenr, me.type)) {
return false;
}
......@@ -40,7 +40,7 @@ bool match_element(const meta_element& me, const message& msg,
bool match_atom_constant(const meta_element& me, const message& msg,
size_t pos, void** storage) {
CAF_REQUIRE(me.typenr == detail::type_nr<atom_value>::value);
CAF_ASSERT(me.typenr == detail::type_nr<atom_value>::value);
if (!msg.match_element(pos, detail::type_nr<atom_value>::value, nullptr)) {
return false;
}
......@@ -126,8 +126,8 @@ bool try_match(const message& msg, size_t msg_pos, size_t msg_size,
}
bool try_match(const message& msg, pattern_iterator pb, size_t ps, void** out) {
CAF_REQUIRE(out != nullptr);
CAF_REQUIRE(msg.empty() || msg.vals()->get_reference_count() > 0);
CAF_ASSERT(out != nullptr);
CAF_ASSERT(msg.empty() || msg.vals()->get_reference_count() > 0);
set_commit_rollback scr{out};
return try_match(msg, 0, msg.size(), pb, pb + ps, scr);
}
......
......@@ -102,7 +102,7 @@ std::vector<const uniform_type_info*> uniform_type_info::instances() {
}
const uniform_type_info* uniform_typeid_by_nr(uint16_t nr) {
CAF_REQUIRE(nr > 0 && nr < detail::type_nrs);
CAF_ASSERT(nr > 0 && nr < detail::type_nrs);
return uti_map().by_type_nr(nr);
}
......
......@@ -184,7 +184,7 @@ void serialize_impl(const channel& chref, serializer* sink) {
} else {
// raw pointer
auto rptr = actor_cast<abstract_channel*>(chref);
CAF_REQUIRE(rptr->is_abstract_actor() || rptr->is_abstract_group());
CAF_ASSERT(rptr->is_abstract_actor() || rptr->is_abstract_group());
if (rptr->is_abstract_actor()) {
// raw actor pointer
abstract_actor_ptr aptr = static_cast<abstract_actor*>(rptr);
......@@ -495,7 +495,7 @@ class default_meta_message : public uniform_type_info {
std::vector<std::string> elements;
split(elements, tname, is_any_of("+"));
auto uti_map = detail::singletons::get_uniform_type_info_map();
CAF_REQUIRE(elements.size() > 0 && elements.front() == "@<>");
CAF_ASSERT(elements.size() > 0 && elements.front() == "@<>");
// ignore first element, because it's always "@<>"
for (size_t i = 1; i != elements.size(); ++i) {
try {
......@@ -524,7 +524,7 @@ class default_meta_message : public uniform_type_info {
}
void serialize(const void* ptr, serializer* sink) const override {
auto& msg = *cast(ptr);
CAF_REQUIRE(msg.size() == m_elements.size());
CAF_ASSERT(msg.size() == m_elements.size());
for (size_t i = 0; i < m_elements.size(); ++i) {
m_elements[i]->serialize(msg.at(i), sink);
}
......@@ -595,7 +595,7 @@ class utim_impl : public uniform_type_info_map {
fill_uti_arr(std::integral_constant<size_t, 0>{},
m_builtin_types, m_storage);
// make sure our builtin types are sorted
CAF_REQUIRE(std::is_sorted(m_builtin_types.begin(),
CAF_ASSERT(std::is_sorted(m_builtin_types.begin(),
m_builtin_types.end(),
[](pointer lhs, pointer rhs) {
return strcmp(lhs->name(), rhs->name()) < 0;
......@@ -603,7 +603,7 @@ class utim_impl : public uniform_type_info_map {
}
virtual pointer by_type_nr(uint16_t nr) const {
CAF_REQUIRE(nr > 0);
CAF_ASSERT(nr > 0);
return m_builtin_types[nr - 1];
}
......
......@@ -237,7 +237,7 @@ class broker : public abstract_event_based_actor<behavior, false> {
throw std::invalid_argument("invalid handle");
}
auto sptr = i->second;
CAF_REQUIRE(sptr->hdl() == hdl);
CAF_ASSERT(sptr->hdl() == hdl);
m_scribes.erase(i);
return spawn_functor(nullptr, [sptr](broker* forked) {
sptr->set_broker(forked);
......
......@@ -68,7 +68,7 @@ class middleman : public detail::abstract_singleton {
return static_cast<Impl*>(i->second.get());
}
auto result = make_counted<Impl>(*this);
CAF_REQUIRE(result->unique());
CAF_ASSERT(result->unique());
result->launch(nullptr, false, true);
m_named_brokers.insert(std::make_pair(name, result));
return result;
......
......@@ -351,8 +351,8 @@ class default_multiplexer : public multiplexer {
template <class F>
void new_event(F fun, operation op, native_socket fd, event_handler* ptr) {
CAF_REQUIRE(fd != invalid_native_socket);
CAF_REQUIRE(ptr != nullptr || fd == m_pipe.first);
CAF_ASSERT(fd != invalid_native_socket);
CAF_ASSERT(ptr != nullptr || fd == m_pipe.first);
// the only valid input where ptr == nullptr is our pipe
// read handle which is only registered for reading
auto old_bf = ptr ? ptr->eventbf() : input_mask;
......@@ -362,7 +362,7 @@ class default_multiplexer : public multiplexer {
auto last = m_events.end();
auto i = std::lower_bound(m_events.begin(), last, fd, event_less{});
if (i != last && i->fd == fd) {
CAF_REQUIRE(ptr == i->ptr);
CAF_ASSERT(ptr == i->ptr);
// squash events together
CAF_LOG_DEBUG("squash events: " << i->mask << " -> "
<< fun(op, i->mask));
......@@ -467,7 +467,7 @@ class stream : public event_handler {
* Starts reading data from the socket, forwarding incoming data to `mgr`.
*/
void start(const manager_ptr& mgr) {
CAF_REQUIRE(mgr != nullptr);
CAF_ASSERT(mgr != nullptr);
m_reader = mgr;
backend().add(operation::read, m_sock.fd(), this);
read_loop();
......@@ -522,7 +522,7 @@ class stream : public event_handler {
* once the stream has been started.
*/
void flush(const manager_ptr& mgr) {
CAF_REQUIRE(mgr != nullptr);
CAF_ASSERT(mgr != nullptr);
CAF_LOG_TRACE("offline buf size: " << m_wr_offline_buf.size()
<< ", mgr = " << mgr.get()
<< ", m_writer = " << m_writer.get());
......@@ -707,7 +707,7 @@ class acceptor : public event_handler {
*/
void start(const manager_ptr& mgr) {
CAF_LOG_TRACE("m_accept_sock.fd = " << m_accept_sock.fd());
CAF_REQUIRE(mgr != nullptr);
CAF_ASSERT(mgr != nullptr);
m_mgr = mgr;
backend().add(operation::read, m_accept_sock.fd(), this);
}
......
......@@ -22,17 +22,17 @@ class receive_policy {
using config = std::pair<receive_policy_flag, size_t>;
static inline config at_least(size_t num_bytes) {
CAF_REQUIRE(num_bytes > 0);
CAF_ASSERT(num_bytes > 0);
return {receive_policy_flag::at_least, num_bytes};
}
static inline config at_most(size_t num_bytes) {
CAF_REQUIRE(num_bytes > 0);
CAF_ASSERT(num_bytes > 0);
return {receive_policy_flag::at_most, num_bytes};
}
static inline config exactly(size_t num_bytes) {
CAF_REQUIRE(num_bytes > 0);
CAF_ASSERT(num_bytes > 0);
return {receive_policy_flag::exactly, num_bytes};
}
......
......@@ -82,13 +82,13 @@ behavior basp_broker::make_behavior() {
// received from underlying broker implementation
[=](new_data_msg& msg) {
CAF_LOG_TRACE("handle = " << msg.handle.id());
CAF_REQUIRE(m_ctx.count(msg.handle) > 0);
CAF_ASSERT(m_ctx.count(msg.handle) > 0);
new_data(m_ctx[msg.handle], msg.buf);
},
// received from underlying broker implementation
[=](const new_connection_msg& msg) {
CAF_LOG_TRACE("handle = " << msg.handle.id());
CAF_REQUIRE(m_ctx.count(msg.handle) == 0);
CAF_ASSERT(m_ctx.count(msg.handle) == 0);
auto& ctx = m_ctx[msg.handle];
ctx.hdl = msg.handle;
ctx.handshake_data = none;
......@@ -287,7 +287,7 @@ void basp_broker::local_dispatch(const basp::header& hdr, message&& msg) {
}
CAF_LOG_DEBUG_IF(src == invalid_actor_addr, "src == invalid_actor_addr");
auto dest = singletons::get_actor_registry()->get(hdr.dest_actor);
CAF_REQUIRE(!dest || dest->node() == node());
CAF_ASSERT(!dest || dest->node() == node());
// intercept message used for link signaling
if (dest && src == dest) {
if (msg.match_elements<atom_value, actor_addr>()) {
......@@ -473,7 +473,7 @@ basp_broker::handle_basp_header(connection_context& ctx,
// must not happen
throw std::logic_error("invalid operation");
case basp::dispatch_message: {
CAF_REQUIRE(payload != nullptr);
CAF_ASSERT(payload != nullptr);
binary_deserializer bd{payload->data(), payload->size(), &m_namespace};
message content;
bd.read(content, m_meta_msg);
......@@ -481,7 +481,7 @@ basp_broker::handle_basp_header(connection_context& ctx,
break;
}
case basp::announce_proxy_instance: {
CAF_REQUIRE(payload == nullptr);
CAF_ASSERT(payload == nullptr);
// source node has created a proxy for one of our actors
auto entry = singletons::get_actor_registry()->get_entry(hdr.dest_actor);
auto nid = hdr.source_node;
......@@ -501,7 +501,7 @@ basp_broker::handle_basp_header(connection_context& ctx,
break;
}
case basp::kill_proxy_instance: {
CAF_REQUIRE(payload == nullptr);
CAF_ASSERT(payload == nullptr);
// we have a proxy to an actor that has been terminated
auto ptr = m_namespace.get(hdr.source_node, hdr.source_actor);
if (ptr) {
......@@ -513,7 +513,7 @@ basp_broker::handle_basp_header(connection_context& ctx,
break;
}
case basp::client_handshake: {
CAF_REQUIRE(payload == nullptr);
CAF_ASSERT(payload == nullptr);
if (ctx.remote_id != invalid_node_id) {
CAF_LOG_INFO("received unexpected client handshake");
return close_connection;
......@@ -531,7 +531,7 @@ basp_broker::handle_basp_header(connection_context& ctx,
break;
}
case basp::server_handshake: {
CAF_REQUIRE(payload != nullptr);
CAF_ASSERT(payload != nullptr);
if (!ctx.handshake_data) {
CAF_LOG_INFO("received unexpected server handshake");
return close_connection;
......@@ -653,9 +653,9 @@ basp_broker::connection_info basp_broker::get_route(const node_id& dest) {
actor_proxy_ptr basp_broker::make_proxy(const node_id& nid, actor_id aid) {
CAF_LOG_TRACE(CAF_TSARG(nid) << ", "
<< CAF_ARG(aid));
CAF_REQUIRE(m_current_context != nullptr);
CAF_REQUIRE(aid != invalid_actor_id);
CAF_REQUIRE(nid != node());
CAF_ASSERT(m_current_context != nullptr);
CAF_ASSERT(aid != invalid_actor_id);
CAF_ASSERT(nid != node());
// this member function is being called whenever we deserialize a
// payload received from a remote node; if a remote node N sends
// us a handle to a third node T, we assume that N has a route to T
......@@ -697,7 +697,7 @@ void basp_broker::on_exit() {
// kill all remaining proxies
auto proxies = m_namespace.get_all();
for (auto& proxy : proxies) {
CAF_REQUIRE(proxy != nullptr);
CAF_ASSERT(proxy != nullptr);
proxy->kill_proxy(exit_reason::remote_link_unreachable);
}
m_namespace.clear();
......@@ -727,7 +727,7 @@ void basp_broker::add_route(const node_id& nid, connection_handle hdl) {
bool basp_broker::try_set_default_route(const node_id& nid,
connection_handle hdl) {
CAF_REQUIRE(!hdl.invalid());
CAF_ASSERT(!hdl.invalid());
auto& entry = m_routes[nid];
if (entry.first.invalid()) {
CAF_LOG_DEBUG("new default route: " << to_string(nid) << " -> "
......@@ -747,7 +747,7 @@ void basp_broker::init_handshake_as_client(connection_context& ctx) {
void basp_broker::init_handshake_as_server(connection_context& ctx,
actor_addr addr) {
CAF_LOG_TRACE(CAF_ARG(this));
CAF_REQUIRE(node() != invalid_node_id);
CAF_ASSERT(node() != invalid_node_id);
if (addr != invalid_actor_addr) {
auto writer = make_payload_writer([&](binary_serializer& sink) {
sink << addr.id();
......@@ -787,14 +787,14 @@ void basp_broker::add_published_actor(accept_handle hdl,
bool basp_broker::remove_published_actor(const abstract_actor_ptr& whom) {
CAF_LOG_TRACE("");
CAF_REQUIRE(whom != nullptr);
CAF_ASSERT(whom != nullptr);
size_t erased_elements = 0;
auto last = m_acceptors.end();
auto i = m_acceptors.begin();
while (i != last) {
auto& kvp = i->second;
if (kvp.first == whom) {
CAF_REQUIRE(valid(i->first));
CAF_ASSERT(valid(i->first));
close(i->first);
if (m_open_ports.erase(kvp.second) == 0) {
CAF_LOG_ERROR("inconsistent data: no open port for acceptor!");
......@@ -812,13 +812,13 @@ bool basp_broker::remove_published_actor(const abstract_actor_ptr& whom) {
bool basp_broker::remove_published_actor(const abstract_actor_ptr& whom,
uint16_t port) {
CAF_LOG_TRACE("");
CAF_REQUIRE(whom != nullptr);
CAF_REQUIRE(port != 0);
CAF_ASSERT(whom != nullptr);
CAF_ASSERT(port != 0);
auto i = m_open_ports.find(port);
if (i == m_open_ports.end()) {
return false;
}
CAF_REQUIRE(valid(i->second));
CAF_ASSERT(valid(i->second));
auto j = m_acceptors.find(i->second);
if (j->second.first != whom) {
CAF_LOG_INFO("port has been bound to a different actor");
......
......@@ -268,9 +268,9 @@ void broker::cleanup(uint32_t reason) {
planned_exit_reason(reason);
on_exit();
close_all();
CAF_REQUIRE(m_doormen.empty());
CAF_REQUIRE(m_scribes.empty());
CAF_REQUIRE(current_mailbox_element() == nullptr);
CAF_ASSERT(m_doormen.empty());
CAF_ASSERT(m_scribes.empty());
CAF_ASSERT(current_mailbox_element() == nullptr);
m_cache.clear();
super::cleanup(reason);
deref(); // release implicit reference count from middleman
......
......@@ -314,7 +314,7 @@ namespace network {
CAF_LOG_TRACE("e.fd = " << e.fd << ", mask = " << e.mask);
// ptr is only allowed to nullptr if fd is our pipe
// read handle which is only registered for input
CAF_REQUIRE(e.ptr != nullptr || e.fd == m_pipe.first);
CAF_ASSERT(e.ptr != nullptr || e.fd == m_pipe.first);
if (e.ptr && e.ptr->eventbf() == e.mask) {
// nop
return;
......@@ -472,8 +472,8 @@ namespace network {
}
void default_multiplexer::handle(const default_multiplexer::event& e) {
CAF_REQUIRE(e.fd != invalid_native_socket);
CAF_REQUIRE(m_pollset.size() == m_shadow.size());
CAF_ASSERT(e.fd != invalid_native_socket);
CAF_ASSERT(m_pollset.size() == m_shadow.size());
CAF_LOGF_TRACE("fd = " << e.fd
<< ", old mask = " << (e.ptr ? e.ptr->eventbf() : -1)
<< ", new mask = " << e.mask);
......@@ -513,7 +513,7 @@ namespace network {
m_shadow.erase(j);
} else {
// update event mask of existing entry
CAF_REQUIRE(*j == e.ptr);
CAF_ASSERT(*j == e.ptr);
i->events = static_cast<short>(e.mask);
}
if (e.ptr) {
......@@ -563,10 +563,10 @@ int del_flag(operation op, int bf) {
void default_multiplexer::add(operation op, native_socket fd,
event_handler* ptr) {
CAF_REQUIRE(fd != invalid_native_socket);
CAF_ASSERT(fd != invalid_native_socket);
// ptr == nullptr is only allowed to store our pipe read handle
// and the pipe read handle is added in the ctor (not allowed here)
CAF_REQUIRE(ptr != nullptr);
CAF_ASSERT(ptr != nullptr);
CAF_LOG_TRACE(CAF_TARG(op, static_cast<int>)<< ", " << CAF_ARG(fd)
<< ", " CAF_ARG(ptr));
new_event(add_flag, op, fd, ptr);
......@@ -574,9 +574,9 @@ void default_multiplexer::add(operation op, native_socket fd,
void default_multiplexer::del(operation op, native_socket fd,
event_handler* ptr) {
CAF_REQUIRE(fd != invalid_native_socket);
CAF_ASSERT(fd != invalid_native_socket);
// ptr == nullptr is only allowed when removing our pipe read handle
CAF_REQUIRE(ptr != nullptr || fd == m_pipe.first);
CAF_ASSERT(ptr != nullptr || fd == m_pipe.first);
CAF_LOG_TRACE(CAF_TARG(op, static_cast<int>)<< ", " << CAF_ARG(fd)
<< ", " CAF_ARG(ptr));
new_event(del_flag, op, fd, ptr);
......@@ -663,7 +663,7 @@ void default_multiplexer::handle_socket_event(native_socket fd, int mask,
if (ptr) {
ptr->handle_event(operation::read);
} else {
CAF_REQUIRE(fd == m_pipe.first);
CAF_ASSERT(fd == m_pipe.first);
CAF_LOG_DEBUG("read message from pipe");
auto cb = rd_dispatch_request();
cb->run();
......@@ -672,7 +672,7 @@ void default_multiplexer::handle_socket_event(native_socket fd, int mask,
}
if (mask & output_mask) {
// we do *never* register our pipe handle for writing
CAF_REQUIRE(ptr != nullptr);
CAF_ASSERT(ptr != nullptr);
checkerror = false;
ptr->handle_event(operation::write);
}
......@@ -760,7 +760,7 @@ connection_handle default_multiplexer::add_tcp_scribe(broker* self,
}
void launch() {
CAF_LOG_TRACE("");
CAF_REQUIRE(!m_launched);
CAF_ASSERT(!m_launched);
m_launched = true;
m_stream.start(this);
}
......@@ -777,7 +777,7 @@ accept_handle
default_multiplexer::add_tcp_doorman(broker* self,
default_socket_acceptor&& sock) {
CAF_LOG_TRACE("sock.fd = " << sock.fd());
CAF_REQUIRE(sock.fd() != network::invalid_native_socket);
CAF_ASSERT(sock.fd() != network::invalid_native_socket);
class impl : public broker::doorman {
public:
impl(broker* ptr, default_socket_acceptor&& s)
......@@ -1069,7 +1069,7 @@ native_socket new_tcp_connection_impl(const std::string& host, uint16_t port,
throw network_error("no such host: " + host);
}
auto proto = res->second;
CAF_REQUIRE(proto == ipv4 || proto == ipv6);
CAF_ASSERT(proto == ipv4 || proto == ipv6);
auto fd = ccall(cc_valid_socket, "socket creation failed", socket,
proto == ipv4 ? AF_INET : AF_INET6, SOCK_STREAM, 0);
socket_guard sguard(fd);
......@@ -1161,7 +1161,7 @@ new_tcp_acceptor_impl(uint16_t port, const char* addr, bool reuse_addr) {
throw network_error(errmsg);
}
proto = addrs->second;
CAF_REQUIRE(proto == ipv4 || proto == ipv6);
CAF_ASSERT(proto == ipv4 || proto == ipv6);
}
auto fd = ccall(cc_valid_socket, "could not create server socket", socket,
proto == ipv4 ? AF_INET : AF_INET6, SOCK_STREAM, 0);
......@@ -1188,7 +1188,7 @@ new_tcp_acceptor(uint16_t port, const char* addr, bool reuse) {
auto& backend = get_multiplexer_singleton();
auto acceptor = new_tcp_acceptor_impl(port, addr, reuse);
auto bound_port = acceptor.second;
CAF_REQUIRE(port == 0 || bound_port == port);
CAF_ASSERT(port == 0 || bound_port == port);
return {default_socket_acceptor{backend, std::move(acceptor.first)},
bound_port};
}
......
......@@ -207,12 +207,12 @@ class middleman_actor_impl : public middleman_actor_base::base {
},
[=](ok_atom, int64_t request_id) {
// not legal for get results
CAF_REQUIRE(m_pending_gets.count(request_id) == 0);
CAF_ASSERT(m_pending_gets.count(request_id) == 0);
handle_ok<del_op_result>(m_pending_deletes, request_id);
},
[=](ok_atom, int64_t request_id, actor_addr& result) {
// not legal for delete results
CAF_REQUIRE(m_pending_deletes.count(request_id) == 0);
CAF_ASSERT(m_pending_deletes.count(request_id) == 0);
handle_ok<get_op_result>(m_pending_gets, request_id, std::move(result));
},
[=](error_atom, int64_t request_id, std::string& reason) {
......
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