diff options
author | Alberto Compagno <acompagn+fdio@cisco.com> | 2019-10-23 15:41:59 +0200 |
---|---|---|
committer | Alberto Compagno <acompagn+fdio@cisco.com> | 2019-10-31 16:07:23 +0100 |
commit | 2fcb8ce4599ab94178aae1ac9f9ff800fd25cd0a (patch) | |
tree | 4001a68a9adfabaec91698249e6fe9e9788e938b /libtransport/src/hicn/transport/interfaces/socket_producer.cc | |
parent | af6553e2bea9dc7210fa11c7b7b0473e0c59de3d (diff) |
[HICN-354] Fixed bug on raaqm when reassemblying packets
Moved rescheduleOnIOService in the header file to allow its usage together
with inheritance
Change-Id: I15e4b92535e1478d0dd09828d2d13e2b77e000b3
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/interfaces/socket_producer.cc')
-rw-r--r-- | libtransport/src/hicn/transport/interfaces/socket_producer.cc | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/libtransport/src/hicn/transport/interfaces/socket_producer.cc b/libtransport/src/hicn/transport/interfaces/socket_producer.cc index f90197490..8f8fc1a79 100644 --- a/libtransport/src/hicn/transport/interfaces/socket_producer.cc +++ b/libtransport/src/hicn/transport/interfaces/socket_producer.cc @@ -391,70 +391,6 @@ void ProducerSocket::onInterest(Interest &interest) { } } -// If the thread calling lambda_func is not the same of io_service, this -// function reschedule the function on it -template <typename Lambda, typename arg2> -int ProducerSocket::rescheduleOnIOService(int socket_option_key, - arg2 socket_option_value, - Lambda lambda_func) { - // To enforce type check - std::function<int(int, arg2)> func = lambda_func; - int result = SOCKET_OPTION_SET; - if (listening_thread_.joinable() && - std::this_thread::get_id() != listening_thread_.get_id()) { - std::mutex mtx; - /* Condition variable for the wait */ - std::condition_variable cv; - bool done = false; - io_service_.dispatch([&socket_option_key, &socket_option_value, &mtx, - &result, &done, &func]() { - std::unique_lock<std::mutex> lck(mtx); - done = true; - result = func(socket_option_key, socket_option_value); - }); - std::unique_lock<std::mutex> lck(mtx); - if (!done) { - cv.wait(lck); - } - } else { - result = func(socket_option_key, socket_option_value); - } - - return result; -} - -// If the thread calling lambda_func is not the same of io_service, this -// function reschedule the function on it -template <typename Lambda, typename arg2> -int ProducerSocket::rescheduleOnIOServiceWithReference( - int socket_option_key, arg2 &socket_option_value, Lambda lambda_func) { - // To enforce type check - std::function<int(int, arg2 &)> func = lambda_func; - int result = SOCKET_OPTION_SET; - if (listening_thread_.joinable() && - std::this_thread::get_id() != this->listening_thread_.get_id()) { - std::mutex mtx; - /* Condition variable for the wait */ - std::condition_variable cv; - std::unique_lock<std::mutex> lck(mtx); - bool done = false; - io_service_.dispatch([this, &socket_option_key, &socket_option_value, &mtx, - &cv, &result, &done, &func]() { - std::unique_lock<std::mutex> lck(mtx); - done = true; - result = func(socket_option_key, socket_option_value); - - if (!done) { - cv.wait(lck); - } - }); - } else { - result = func(socket_option_key, socket_option_value); - } - - return result; -} - int ProducerSocket::setSocketOption(int socket_option_key, uint32_t socket_option_value) { switch (socket_option_key) { |