Merge pull request #6234 from rainers/curl_freeze

fix issue 18519 freebsd 11 + phobos + curl, timing out
merged-on-behalf-of: Petar Kirov <ZombineDev@users.noreply.github.com>
This commit is contained in:
The Dlang Bot 2018-03-11 14:13:44 +01:00 committed by GitHub
commit 35e9807bbe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -195,6 +195,7 @@ version(unittest)
private:
string _addr;
Tid tid;
TcpSocket sock;
static void loop(shared TcpSocket listener)
{
@ -224,21 +225,32 @@ version(unittest)
import std.concurrency : spawn;
import std.socket : INADDR_LOOPBACK, InternetAddress, TcpSocket;
tlsInit = true;
auto sock = new TcpSocket;
sock.bind(new InternetAddress(INADDR_LOOPBACK, InternetAddress.PORT_ANY));
sock.listen(1);
auto addr = sock.localAddress.toString();
auto tid = spawn(&TestServer.loop, cast(shared) sock);
return TestServer(addr, tid);
return TestServer(addr, tid, sock);
}
__gshared TestServer server;
bool tlsInit;
private ref TestServer testServer()
{
import std.concurrency : initOnce;
__gshared TestServer server;
return initOnce!server(startServer());
}
static ~this()
{
// terminate server from a thread local dtor of the thread that started it,
// because thread_joinall is called before shared module dtors
if (tlsInit && server.sock)
server.sock.close();
}
private struct Request(T)
{
string hdrs;