The following program is faulting on Linux (Ubuntu 14 and RHEL 7) on listener.close. It faults if one or more requests are processed, not on zero requests. It actually serves up pages just fine, it just faults on close or end of program. I suspect the issue is threading due to wrong build or LD_LIBRARY_PATH. Can someone spot the error?
```
g++ t.cpp -std=c++11 -I ../../casablanca/Release/include -L ../../casablanca/Release/build.release/Binaries -lcasablanca
export LD_LIBRARY_PATH=../../casablanca/Release/build.release/Binaries
./a.out
```
```
#include "cpprest/http_client.h"
#include "cpprest/http_listener.h"
int main()
{
try
{
web::http::experimental::listener::http_listener listener(U("http://192.168.1.111:3901"));
listener.support([&] (web::http::http_request request) { request.reply(web::http::status_codes::OK, U("Hello, World!")); });
listener.open().wait();
std::cout << "waiting for input" << std::endl;
std::string line;
std::getline(std::cin, line);
std::cout << "closing" << std::endl;
listener.close(); // .wait();
}
catch (...)
{
std::cout << "caught error" << std::endl;
}
return(0);
}
```
```
g++ t.cpp -std=c++11 -I ../../casablanca/Release/include -L ../../casablanca/Release/build.release/Binaries -lcasablanca
export LD_LIBRARY_PATH=../../casablanca/Release/build.release/Binaries
./a.out
```
```
#include "cpprest/http_client.h"
#include "cpprest/http_listener.h"
int main()
{
try
{
web::http::experimental::listener::http_listener listener(U("http://192.168.1.111:3901"));
listener.support([&] (web::http::http_request request) { request.reply(web::http::status_codes::OK, U("Hello, World!")); });
listener.open().wait();
std::cout << "waiting for input" << std::endl;
std::string line;
std::getline(std::cin, line);
std::cout << "closing" << std::endl;
listener.close(); // .wait();
}
catch (...)
{
std::cout << "caught error" << std::endl;
}
return(0);
}
```