diff options
author | Ryan Keane <rwkeane@google.com> | 2019-11-14 12:54:27 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-11-14 21:04:41 +0000 |
commit | c76b2713813be0171bd57393a5577662906c6d7a (patch) | |
tree | 3cbfb3f81db78f1119b6f1b7139d0a418eb4b418 /osp | |
parent | 977b6ef1ba8be7c7b08db11014c11537f106cd5e (diff) | |
download | openscreen-c76b2713813be0171bd57393a5577662906c6d7a.tar.gz |
PlatformClient: Use in Demos + Cleanup
This is the final CL required to change over to using the
PlatformClient throughout our code
This change includes 4 parts:
1) Update demos to use the new PlatformClient code for threading and
singletons.
2) Fix a Race Condition in PlatformClientPosix where new threads were
using the client's resources before construction had completed
3) Remove now-unused threading code (task_runner_thread, etc...)
4) Remove UdpSocket::LifetimeObserver interface and related code.
Change-Id: I549a2fae2f7ee79d1e98c88a3ed813c1b5645f55
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1860333
Commit-Queue: Ryan Keane <rwkeane@google.com>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Diffstat (limited to 'osp')
-rw-r--r-- | osp/demo/osp_demo.cc | 31 | ||||
-rw-r--r-- | osp/impl/discovery/mdns/mdns_demo.cc | 19 |
2 files changed, 25 insertions, 25 deletions
diff --git a/osp/demo/osp_demo.cc b/osp/demo/osp_demo.cc index 0da3b026..229a03c4 100644 --- a/osp/demo/osp_demo.cc +++ b/osp/demo/osp_demo.cc @@ -30,13 +30,15 @@ #include "platform/api/time.h" #include "platform/api/trace_logging.h" #include "platform/impl/logging.h" -#include "platform/impl/socket_handle_waiter_thread.h" +#include "platform/impl/platform_client_posix.h" #include "platform/impl/task_runner.h" -#include "platform/impl/task_runner_thread.h" #include "platform/impl/text_trace_logging_platform.h" #include "platform/impl/udp_socket_reader_posix.h" #include "third_party/tinycbor/src/src/cbor.h" +using Clock = openscreen::platform::Clock; +using PlatformClientPosix = openscreen::platform::PlatformClientPosix; + namespace openscreen { namespace { @@ -424,21 +426,18 @@ void RunControllerPollLoop(presentation::Controller* controller) { void ListenerDemo() { SignalThings(); - platform::TaskRunnerThread task_runner_thread(platform::Clock::now); - platform::SocketHandleWaiterThread socket_handle_waiter_thread; - platform::UdpSocketReaderPosix reader( - socket_handle_waiter_thread.socket_handle_waiter()); - ListenerObserver listener_observer; MdnsServiceListenerConfig listener_config; auto mdns_listener = MdnsServiceListenerFactory::Create( - listener_config, &listener_observer, task_runner_thread.task_runner()); + listener_config, &listener_observer, + PlatformClientPosix::GetInstance()->GetTaskRunner()); MessageDemuxer demuxer(platform::Clock::now, MessageDemuxer::kDefaultBufferLimit); ConnectionClientObserver client_observer; auto connection_client = ProtocolConnectionClientFactory::Create( - &demuxer, &client_observer, task_runner_thread.task_runner()); + &demuxer, &client_observer, + PlatformClientPosix::GetInstance()->GetTaskRunner()); auto* network_service = NetworkServiceManager::Create( std::move(mdns_listener), nullptr, std::move(connection_client), nullptr); @@ -515,11 +514,6 @@ void PublisherDemo(absl::string_view friendly_name) { constexpr uint16_t server_port = 6667; - platform::TaskRunnerThread task_runner_thread(platform::Clock::now); - platform::SocketHandleWaiterThread socket_handle_waiter_thread; - platform::UdpSocketReaderPosix reader( - socket_handle_waiter_thread.socket_handle_waiter()); - PublisherObserver publisher_observer; // TODO(btolsch): aggregate initialization probably better? ServicePublisher::Config publisher_config; @@ -529,7 +523,8 @@ void PublisherDemo(absl::string_view friendly_name) { publisher_config.connection_server_port = server_port; auto mdns_publisher = MdnsServicePublisherFactory::Create( - publisher_config, &publisher_observer, task_runner_thread.task_runner()); + publisher_config, &publisher_observer, + PlatformClientPosix::GetInstance()->GetTaskRunner()); ServerConfig server_config; std::vector<platform::InterfaceAddresses> interfaces = @@ -544,7 +539,7 @@ void PublisherDemo(absl::string_view friendly_name) { ConnectionServerObserver server_observer; auto connection_server = ProtocolConnectionServerFactory::Create( server_config, &demuxer, &server_observer, - task_runner_thread.task_runner()); + PlatformClientPosix::GetInstance()->GetTaskRunner()); auto* network_service = NetworkServiceManager::Create(nullptr, std::move(mdns_publisher), nullptr, @@ -614,11 +609,15 @@ int main(int argc, char** argv) { openscreen::platform::TextTraceLoggingPlatform text_logging_platform; TRACE_SET_DEFAULT_PLATFORM(&text_logging_platform); + PlatformClientPosix::Create(Clock::duration{50}, Clock::duration{50}); + if (is_receiver_demo) { openscreen::PublisherDemo(args.friendly_server_name); } else { openscreen::ListenerDemo(); } + PlatformClientPosix::ShutDown(); + return 0; } diff --git a/osp/impl/discovery/mdns/mdns_demo.cc b/osp/impl/discovery/mdns/mdns_demo.cc index 0a6722fb..8bb49d99 100644 --- a/osp/impl/discovery/mdns/mdns_demo.cc +++ b/osp/impl/discovery/mdns/mdns_demo.cc @@ -15,9 +15,8 @@ #include "platform/api/time.h" #include "platform/base/error.h" #include "platform/impl/logging.h" -#include "platform/impl/socket_handle_waiter_thread.h" +#include "platform/impl/platform_client_posix.h" #include "platform/impl/task_runner.h" -#include "platform/impl/task_runner_thread.h" #include "platform/impl/udp_socket_reader_posix.h" // This file contains a demo of our mDNSResponder wrapper code. It can both @@ -36,6 +35,10 @@ // There are a few known bugs around the handling of record events, so this // shouldn't be expected to be a source of truth, nor should it be expected to // be correct after running for a long time. + +using Clock = openscreen::platform::Clock; +using PlatformClientPosix = openscreen::platform::PlatformClientPosix; + namespace openscreen { namespace { @@ -358,14 +361,12 @@ int main(int argc, char** argv) { openscreen::ServiceMap services; openscreen::g_services = &services; - openscreen::platform::TaskRunnerThread task_runner_thread( - openscreen::platform::Clock::now); - openscreen::platform::SocketHandleWaiterThread socket_handle_waiter_thread; - openscreen::platform::UdpSocketReaderPosix reader( - socket_handle_waiter_thread.socket_handle_waiter()); + PlatformClientPosix::Create(Clock::duration{50}, Clock::duration{50}); + + openscreen::BrowseDemo(PlatformClientPosix::GetInstance()->GetTaskRunner(), + labels[0], labels[1], service_instance); - openscreen::BrowseDemo(task_runner_thread.task_runner(), labels[0], labels[1], - service_instance); + PlatformClientPosix::ShutDown(); openscreen::g_services = nullptr; return 0; |