aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/utils/epoll_event_reactor.cc
diff options
context:
space:
mode:
authorAlberto Compagno <acompagn+fdio@cisco.com>2019-02-13 15:06:23 +0100
committerAlberto Compagno <acompagn+fdio@cisco.com>2019-02-13 15:06:23 +0100
commitd1dedcb21e7ba074a0a83fad09a742e54a8d1525 (patch)
tree31aebff80bf016d32480a1e38b3e58110f8adb67 /libtransport/src/hicn/transport/utils/epoll_event_reactor.cc
parent13fccc2bb1c2317061e6bf985c87bca647fb3b6f (diff)
[HICN-60] Solved concurrent memory access which was leading to seg-fault
Change-Id: I7b9fcf79bb97650346f7d92af8cbb419f0a5cb95 Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/utils/epoll_event_reactor.cc')
-rw-r--r--libtransport/src/hicn/transport/utils/epoll_event_reactor.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/libtransport/src/hicn/transport/utils/epoll_event_reactor.cc b/libtransport/src/hicn/transport/utils/epoll_event_reactor.cc
index 81b471857..6df9e5656 100644
--- a/libtransport/src/hicn/transport/utils/epoll_event_reactor.cc
+++ b/libtransport/src/hicn/transport/utils/epoll_event_reactor.cc
@@ -51,10 +51,9 @@ int EpollEventReactor::addFileDescriptor(int fd, uint32_t events) {
int EpollEventReactor::addFileDescriptor(int fd, uint32_t events,
EventCallback &callback) {
auto it = event_callback_map_.find(fd);
- event_callback_map_[fd] = callback;
- if (it != event_callback_map_.end()) {
+
+ if (it == event_callback_map_.end()) {
event_callback_map_[fd] = callback;
- } else {
return addFileDescriptor(fd, events);
}
@@ -64,10 +63,9 @@ int EpollEventReactor::addFileDescriptor(int fd, uint32_t events,
int EpollEventReactor::addFileDescriptor(int fd, uint32_t events,
EventCallback &&callback) {
auto it = event_callback_map_.find(fd);
- event_callback_map_[fd] = callback;
- if (it != event_callback_map_.end()) {
+
+ if (it == event_callback_map_.end()) {
event_callback_map_[fd] = callback;
- } else {
return addFileDescriptor(fd, events);
}