Alan Conway created PROTON-1734:
-----------------------------------
Summary: [cpp] container.stop() doesn't work when called from
non-proactor thread.
Key: PROTON-1734
URL: https://issues.apache.org/jira/browse/PROTON-1734
Project: Qpid Proton
Issue Type: Bug
Components: cpp-binding
Affects Versions: proton-c-0.19.0
Reporter: Alan Conway
Assignee: Alan Conway
Fix For: proton-c-0.20.0
Using the below code
{code}
#include <proton/container.hpp>
#include <iostream>
#include <thread>
int main( int, char** )
{
try
{
proton::container c;
c.auto_stop( false );
auto containerThread = std::thread([&]() { std::cout << "CONTAINER IS
RUNNING" << std::endl;
c.run(); std::cout << "CONTAINER IS DONE" << std::endl; });
std::this_thread::sleep_for( std::chrono::seconds( 2 ));
std::cout << "STOPPING CONTAINER" << std::endl;
c.stop();
std::cout << "WAITING FOR CONTAINER" << std::endl;
containerThread.join();
return 0;
}
catch( std::exception& e )
{
std::cerr << e.what() << std::endl;
}
return 1;
}
{code}
via
{code}
[rkieley@i7t450s build]$ g++ -g -Wall -Wextra -Wpointer-arith -Wconversion
-Wformat -Wformat-security -Wformat-y2k -Wsign-promo -Wcast-qual -g3 -ggdb3
-Wunused-variable -fno-eliminate-unused-debug-types -O3 -DNDEBUG -fPIC
-DPN_CPP_HAS_LAMBDAS=0 -std=gnu++11 ../attachments/test.cpp -lqpid-proton-cpp
-lqpid-proton-core -lqpid-proton-proactor -lrt -lpthread -o test
{code}
With both PROACTOR epoll and libuv I see the following when run:
{quote}
[New Thread 0x7ffff3c95700 (LWP 20312)]
CONTAINER IS RUNNING
STOPPING CONTAINER
WAITING FOR CONTAINER
^C
Thread 1 "test" received signal SIGINT, Interrupt.
{quote}
When I use CTRL-C to stop waiting after running via gdb and waiting 2 minutes.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]