Make allocator shared and fix some RefCounted bugs

This commit is contained in:
2016-12-06 21:29:08 +01:00
parent b3fdd6fd4a
commit fa607141e4
19 changed files with 2682 additions and 2717 deletions

View File

@ -107,7 +107,7 @@ class EpollLoop : SelectorLoop
{
if (errno != EINTR)
{
throw theAllocator.make!BadLoopException();
throw defaultAllocator.make!BadLoopException();
}
return;
}

View File

@ -45,7 +45,7 @@ class IOCPStreamTransport : StreamTransport
body
{
socket_ = socket;
input = MmapPool.instance.make!WriteBuffer();
input = MmapPool.instance.make!WriteBuffer(8192, MmapPool.instance);
}
~this()
@ -101,7 +101,8 @@ class IOCPStreamTransport : StreamTransport
completionPort = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0);
if (!completionPort)
{
throw theAllocator.make!BadLoopException("Creating completion port failed");
throw make!BadLoopException(defaultAllocator,
"Creating completion port failed");
}
}
@ -141,7 +142,7 @@ class IOCPStreamTransport : StreamTransport
catch (SocketException e)
{
MmapPool.instance.dispose(overlapped);
theAllocator.dispose(e);
defaultAllocator.dispose(e);
return false;
}
}
@ -173,7 +174,7 @@ class IOCPStreamTransport : StreamTransport
catch (SocketException e)
{
MmapPool.instance.dispose(overlapped);
theAllocator.dispose(e);
defaultAllocator.dispose(e);
return false;
}
}

View File

@ -250,7 +250,7 @@ class KqueueLoop : SelectorLoop
{
if (errno != EINTR)
{
throw theAllocator.make!BadLoopException();
throw defaultAllocatorAllocator.make!BadLoopException();
}
return;
}

View File

@ -46,7 +46,7 @@ class SelectorStreamTransport : StreamTransport
{
socket_ = socket;
this.loop = loop;
input = MmapPool.instance.make!WriteBuffer();
input = MmapPool.instance.make!WriteBuffer(8192, MmapPool.instance);
}
/**
@ -224,7 +224,7 @@ abstract class SelectorLoop : Loop
}
catch (SocketException e)
{
theAllocator.dispose(e);
defaultAllocator.dispose(e);
break;
}
if (client is null)