Commit d05fb5d4 authored by Jakob Otto's avatar Jakob Otto

Cleanup code

parent 78e185c8
...@@ -71,7 +71,7 @@ public: ...@@ -71,7 +71,7 @@ public:
/// @thread-safe /// @thread-safe
void register_writing(const socket_manager_ptr& mgr); void register_writing(const socket_manager_ptr& mgr);
/// Unregisters `mgr` for events. /// Unregisters `mgr` for read and write events.
/// @thread-safe /// @thread-safe
void unregister_manager(const socket_manager_ptr& mgr); void unregister_manager(const socket_manager_ptr& mgr);
...@@ -109,6 +109,9 @@ protected: ...@@ -109,6 +109,9 @@ protected:
/// Deletes a known socket manager from the pollset. /// Deletes a known socket manager from the pollset.
void del(const socket_manager_ptr& mgr); void del(const socket_manager_ptr& mgr);
/// Deletes a known socket manager from the pollset.
void del(ptrdiff_t index);
/// Writes `opcode` and pointer to `mgr` the the pipe for handling an event /// Writes `opcode` and pointer to `mgr` the the pipe for handling an event
/// later via the pollset updater. /// later via the pollset updater.
void write_to_pipe(uint8_t opcode, const socket_manager_ptr& mgr); void write_to_pipe(uint8_t opcode, const socket_manager_ptr& mgr);
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include "caf/net/pollset_updater.hpp" #include "caf/net/pollset_updater.hpp"
#include "caf/net/socket_manager.hpp" #include "caf/net/socket_manager.hpp"
#include "caf/sec.hpp" #include "caf/sec.hpp"
#include "caf/span.hpp"
#include "caf/variant.hpp" #include "caf/variant.hpp"
#ifndef CAF_WINDOWS #ifndef CAF_WINDOWS
...@@ -209,8 +208,7 @@ bool multiplexer::poll_once(bool blocking) { ...@@ -209,8 +208,7 @@ bool multiplexer::poll_once(bool blocking) {
auto new_events = handle(mgr, events, revents); auto new_events = handle(mgr, events, revents);
--presult; --presult;
if (new_events == 0) { if (new_events == 0) {
pollset_.erase(pollset_.begin() + i); del(i);
managers_.erase(managers_.begin() + i);
continue; continue;
} else if (new_events != events) { } else if (new_events != events) {
pollset_[i].events = new_events; pollset_[i].events = new_events;
...@@ -290,9 +288,13 @@ void multiplexer::add(socket_manager_ptr mgr) { ...@@ -290,9 +288,13 @@ void multiplexer::add(socket_manager_ptr mgr) {
} }
void multiplexer::del(const socket_manager_ptr& mgr) { void multiplexer::del(const socket_manager_ptr& mgr) {
CAF_ASSERT(index_of(mgr) != -1); del(index_of(mgr));
pollset_.erase(pollset_.begin() + index_of(mgr)); }
managers_.erase(managers_.begin() + index_of(mgr));
void multiplexer::del(ptrdiff_t index) {
CAF_ASSERT(index != -1);
pollset_.erase(pollset_.begin() + index);
managers_.erase(managers_.begin() + index);
} }
void multiplexer::write_to_pipe(uint8_t opcode, const socket_manager_ptr& mgr) { void multiplexer::write_to_pipe(uint8_t opcode, const socket_manager_ptr& mgr) {
......
...@@ -45,8 +45,8 @@ error test::init() { ...@@ -45,8 +45,8 @@ error test::init() {
} }
void test::stop() { void test::stop() {
for (const auto& pair : peers_) for (const auto& p : peers_)
proxies_.erase(pair.first); proxies_.erase(p.first);
peers_.clear(); peers_.clear();
} }
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <cstring> #include <cstring>
#include "caf/logger.hpp"
#include "caf/net/multiplexer.hpp" #include "caf/net/multiplexer.hpp"
#include "caf/sec.hpp" #include "caf/sec.hpp"
#include "caf/span.hpp" #include "caf/span.hpp"
...@@ -50,18 +51,25 @@ bool pollset_updater::handle_read_event() { ...@@ -50,18 +51,25 @@ bool pollset_updater::handle_read_event() {
intptr_t value; intptr_t value;
memcpy(&value, buf_.data() + 1, sizeof(intptr_t)); memcpy(&value, buf_.data() + 1, sizeof(intptr_t));
if (auto ptr = parent_.lock()) { if (auto ptr = parent_.lock()) {
if (opcode == 0) { switch (opcode) {
ptr->register_reading( case 0:
{reinterpret_cast<socket_manager*>(value), false}); ptr->register_reading(
} else if (opcode == 1) { {reinterpret_cast<socket_manager*>(value), false});
ptr->register_writing( break;
{reinterpret_cast<socket_manager*>(value), false}); case 1:
} else if (opcode == 4) { ptr->register_writing(
ptr->unregister_manager( {reinterpret_cast<socket_manager*>(value), false});
{reinterpret_cast<socket_manager*>(value), false}); break;
} else { case 4:
CAF_ASSERT(opcode == 5); ptr->unregister_manager(
ptr->shutdown(); {reinterpret_cast<socket_manager*>(value), false});
break;
case 5:
ptr->shutdown();
break;
default:
CAF_LOG_DEBUG("opcode not recognized: " << CAF_ARG(opcode));
break;
} }
} }
} }
......
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