diff --git a/source/tanya/async/event/epoll.d b/source/tanya/async/event/epoll.d index 68679f3..ff2b564 100644 --- a/source/tanya/async/event/epoll.d +++ b/source/tanya/async/event/epoll.d @@ -31,7 +31,6 @@ import tanya.async.transport; import tanya.async.watcher; import tanya.container.array; import tanya.memory; -import tanya.memory.mmappool; import tanya.network.socket; extern (C) nothrow @nogc @@ -56,7 +55,7 @@ final class EpollLoop : SelectorLoop throw defaultAllocator.make!BadLoopException("epoll initialization failed"); } super(); - events = Array!epoll_event(maxEvents, MmapPool.instance); + events = Array!epoll_event(maxEvents); } /** diff --git a/source/tanya/async/event/iocp.d b/source/tanya/async/event/iocp.d index bb678e1..d4fa6f2 100644 --- a/source/tanya/async/event/iocp.d +++ b/source/tanya/async/event/iocp.d @@ -27,7 +27,6 @@ import tanya.async.transport; import tanya.async.watcher; import tanya.container.buffer; import tanya.memory; -import tanya.memory.mmappool; import tanya.network.socket; import tanya.sys.windows.winbase; @@ -57,8 +56,8 @@ final class StreamTransport : SocketWatcher, DuplexTransport, SocketTransport this(OverlappedConnectedSocket socket) @nogc { super(socket); - output = ReadBuffer!ubyte(8192, 1024, MmapPool.instance); - input = WriteBuffer!ubyte(8192, MmapPool.instance); + output = ReadBuffer!ubyte(8192, 1024); + input = WriteBuffer!ubyte(8192); active = true; } @@ -117,8 +116,7 @@ final class StreamTransport : SocketWatcher, DuplexTransport, SocketTransport /** * Switches the protocol. * - * The protocol is deallocated by the event loop, it should currently be - * allocated with $(D_PSYMBOL MmapPool). + * The protocol is deallocated by the event loop. * * Params: * protocol = Application protocol. @@ -150,20 +148,20 @@ final class StreamTransport : SocketWatcher, DuplexTransport, SocketTransport SocketState overlapped; try { - overlapped = MmapPool.instance.make!SocketState; + overlapped = defaultAllocator.make!SocketState; socket.beginSend(input[], overlapped); } catch (SocketException e) { - MmapPool.instance.dispose(overlapped); - MmapPool.instance.dispose(e); + defaultAllocator.dispose(overlapped); + defaultAllocator.dispose(e); } } } else { protocol.disconnected(exception); - MmapPool.instance.dispose(protocol_); + defaultAllocator.dispose(protocol_); defaultAllocator.dispose(exception); active = false; } @@ -221,12 +219,12 @@ final class IOCPLoop : Loop try { - overlapped = MmapPool.instance.make!SocketState; + overlapped = defaultAllocator.make!SocketState; socket.beginAccept(overlapped); } catch (SocketException e) { - MmapPool.instance.dispose(overlapped); + defaultAllocator.dispose(overlapped); defaultAllocator.dispose(e); return false; } @@ -250,12 +248,12 @@ final class IOCPLoop : Loop { try { - overlapped = MmapPool.instance.make!SocketState; + overlapped = defaultAllocator.make!SocketState; transport.socket.beginReceive(transport.output[], overlapped); } catch (SocketException e) { - MmapPool.instance.dispose(overlapped); + defaultAllocator.dispose(overlapped); defaultAllocator.dispose(e); return false; } @@ -302,7 +300,7 @@ final class IOCPLoop : Loop assert(overlapped !is null); scope (failure) { - MmapPool.instance.dispose(overlapped); + defaultAllocator.dispose(overlapped); } switch (overlapped.event) @@ -315,7 +313,7 @@ final class IOCPLoop : Loop assert(listener !is null); auto socket = listener.endAccept(overlapped); - auto transport = MmapPool.instance.make!StreamTransport(socket); + auto transport = defaultAllocator.make!StreamTransport(socket); connection.incoming.enqueue(transport); @@ -330,8 +328,8 @@ final class IOCPLoop : Loop if (!transport.active) { - MmapPool.instance.dispose(transport); - MmapPool.instance.dispose(overlapped); + defaultAllocator.dispose(transport); + defaultAllocator.dispose(overlapped); return; } diff --git a/source/tanya/async/event/kqueue.d b/source/tanya/async/event/kqueue.d index 8c7105e..3a48fdd 100644 --- a/source/tanya/async/event/kqueue.d +++ b/source/tanya/async/event/kqueue.d @@ -59,7 +59,6 @@ import tanya.async.transport; import tanya.async.watcher; import tanya.container.array; import tanya.memory; -import tanya.memory.mmappool; import tanya.network.socket; void EV_SET(kevent_t* kevp, typeof(kevent_t.tupleof) args) pure nothrow @nogc @@ -146,8 +145,8 @@ final class KqueueLoop : SelectorLoop throw make!BadLoopException(defaultAllocator, "kqueue initialization failed"); } - events = Array!kevent_t(64, MmapPool.instance); - changes = Array!kevent_t(64, MmapPool.instance); + events = Array!kevent_t(64); + changes = Array!kevent_t(64); } /** diff --git a/source/tanya/async/event/selector.d b/source/tanya/async/event/selector.d index aad15f4..f177607 100644 --- a/source/tanya/async/event/selector.d +++ b/source/tanya/async/event/selector.d @@ -26,7 +26,6 @@ import tanya.async.watcher; import tanya.container.array; import tanya.container.buffer; import tanya.memory; -import tanya.memory.mmappool; import tanya.network.socket; /** @@ -65,8 +64,8 @@ package class StreamTransport : SocketWatcher, DuplexTransport, SocketTransport { super(socket); this.loop = loop; - output = ReadBuffer!ubyte(8192, 1024, MmapPool.instance); - input = WriteBuffer!ubyte(8192, MmapPool.instance); + output = ReadBuffer!ubyte(8192, 1024); + input = WriteBuffer!ubyte(8192); active = true; } @@ -107,8 +106,7 @@ package class StreamTransport : SocketWatcher, DuplexTransport, SocketTransport /** * Switches the protocol. * - * The protocol is deallocated by the event loop, it should currently be - * allocated with $(D_PSYMBOL MmapPool). + * The protocol is deallocated by the event loop. * * Params: * protocol = Application protocol. @@ -163,7 +161,7 @@ package class StreamTransport : SocketWatcher, DuplexTransport, SocketTransport else { protocol.disconnected(exception); - MmapPool.instance.dispose(protocol_); + defaultAllocator.dispose(protocol_); defaultAllocator.dispose(exception); active = false; } @@ -220,7 +218,7 @@ abstract class SelectorLoop : Loop this() @nogc { super(); - connections = Array!SocketWatcher(maxEvents, MmapPool.instance); + connections = Array!SocketWatcher(maxEvents); } ~this() @nogc @@ -231,7 +229,7 @@ abstract class SelectorLoop : Loop // created by the user and should be freed by himself. if (cast(StreamTransport) connection !is null) { - MmapPool.instance.dispose(connection); + defaultAllocator.dispose(connection); } } } @@ -387,7 +385,7 @@ abstract class SelectorLoop : Loop } if (transport is null) { - transport = MmapPool.instance.make!StreamTransport(this, client); + transport = defaultAllocator.make!StreamTransport(this, client); connections[client.handle] = transport; } else diff --git a/source/tanya/async/loop.d b/source/tanya/async/loop.d index 79a6da9..f3b568f 100644 --- a/source/tanya/async/loop.d +++ b/source/tanya/async/loop.d @@ -78,7 +78,6 @@ import tanya.async.watcher; import tanya.container.buffer; import tanya.container.queue; import tanya.memory; -import tanya.memory.mmappool; import tanya.network.socket; version (DisableBackends) @@ -189,7 +188,7 @@ abstract class Loop */ this() @nogc { - pendings = Queue!Watcher(MmapPool.instance); + pendings = Queue!Watcher(); } /** @@ -199,7 +198,7 @@ abstract class Loop { foreach (w; pendings) { - MmapPool.instance.dispose(w); + defaultAllocator.dispose(w); } } @@ -384,16 +383,16 @@ class BadLoopException : Exception } version (Epoll) { - defaultLoop_ = MmapPool.instance.make!EpollLoop; + defaultLoop_ = defaultAllocator.make!EpollLoop; } else version (IOCP) { - defaultLoop_ = MmapPool.instance.make!IOCPLoop; + defaultLoop_ = defaultAllocator.make!IOCPLoop; } else version (Kqueue) { import tanya.async.event.kqueue; - defaultLoop_ = MmapPool.instance.make!KqueueLoop; + defaultLoop_ = defaultAllocator.make!KqueueLoop; } return defaultLoop_; } diff --git a/source/tanya/async/transport.d b/source/tanya/async/transport.d index 9e5b6ec..a2a5d28 100644 --- a/source/tanya/async/transport.d +++ b/source/tanya/async/transport.d @@ -65,8 +65,7 @@ interface DuplexTransport : ReadTransport, WriteTransport /** * Switches the protocol. * - * The protocol is deallocated by the event loop, it should currently be - * allocated with $(D_PSYMBOL MmapPool). + * The protocol is deallocated by the event loop. * * Params: * protocol = Application protocol. diff --git a/source/tanya/async/watcher.d b/source/tanya/async/watcher.d index fb259c3..7650eac 100644 --- a/source/tanya/async/watcher.d +++ b/source/tanya/async/watcher.d @@ -22,7 +22,6 @@ import tanya.async.transport; import tanya.container.buffer; import tanya.container.queue; import tanya.memory; -import tanya.memory.mmappool; import tanya.network.socket; /** @@ -103,7 +102,7 @@ class ConnectionWatcher : SocketWatcher this(Socket socket) @nogc { super(socket); - incoming = Queue!DuplexTransport(MmapPool.instance); + incoming = Queue!DuplexTransport(); } /** @@ -112,7 +111,7 @@ class ConnectionWatcher : SocketWatcher */ void setProtocol(P : Protocol)() @nogc { - this.protocolFactory = () @nogc => cast(Protocol) MmapPool.instance.make!P; + this.protocolFactory = () @nogc => cast(Protocol) defaultAllocator.make!P; } /**