summary refs log tree commit diff stats
path: root/lib/pure/asyncnet.nim
Commit message (Collapse)AuthorAgeFilesLines
* Add warning about recvLineInto being bound to changedef2015-04-261-0/+3
|
* Revert "Introduce FutureVar[T] to make recvLineInto safer."def2015-04-261-29/+9
| | | | This reverts commit 72b4912c84b16644657f94e54105739cba4b2457.
* Fix asyncdispatch on Windows.Dominik Picheta2015-04-241-112/+0
|
* Introduce FutureVar[T] to make recvLineInto safer.Dominik Picheta2015-04-241-9/+29
| | | | | | | | | | | FutureVar[T] is a new distinct Future type which is designed to be used for situations where the highest performance is needed. It reduces the number of Future allocations needed. It acts as a replacement for 'var' params in async procs. This commit modifies @def-'s PR in order to make it safer. The recvLineInto procedure has been modified to take a ``FutureVar[string]`` param instead of a ``ptr string`` param.
* Some small cleanup.Dominik Picheta2015-04-231-2/+2
|
* Merge branch 'clean-speedup-2' of https://github.com/def-/Nim into ↵Dominik Picheta2015-04-231-42/+189
|\ | | | | | | def--clean-speedup-2
| * Some style cleanupdef2015-03-171-3/+3
| |
| * Move recvInto to asyncnet and don't export itdef2015-03-171-8/+120
| |
| * Don't export readInto* templatesdef2015-03-171-2/+2
| |
| * Make recvLineInto a proc instead of templatedef2015-03-171-50/+48
| |
| * Speed up asynchttpserver significantly using all the previous changesdef2015-03-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Export socket field of AsyncHttpServer and addHeaders proc for templates - Make respond a template instead of proc because of how often it's called. This means no more "await" when invoking it. - Optimize respond template with special case for empty headers and Content-Length entry - newRequest doesn't allocate a hostname and body anymore because they're copied in later - Major changes to processClient to prevent allocations and copies
| * Make asyncnet usable when avoiding allocations.def2015-03-171-61/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - readInto, readIntoBuf, are templates instead of procs now - New recvLineInto template that reads directly into a string instead of creating a new one. Used by recvLine proc now - Need fd and bufLen fields of AsyncSocketDesc exported because of the templates - recv returns a shallow string to prevent copying - This gives significant speedups, mostly by using templates instead of creating new Futures and waiting for them all the time.
* | Don't run non-test code when defined(testing)Oleh Prypin2015-04-211-1/+1
|/
* Happy new year!Guillaume Gelin2015-01-061-1/+1
|
* Fixes asynchttpsever.Dominik Picheta2014-12-261-0/+4
|
* Fixes #1745.Dominik Picheta2014-12-261-10/+25
|
* Fixes SSL AsyncSocket close problem. Ref #1769. Ref #1759.Dominik Picheta2014-12-241-3/+3
|
* Fix some deprecation warnings caused by renamesdef2014-11-131-40/+40
|
* Implement SO_REUSEADDR for asyncnet and asynchttpserver.Dominik Picheta2014-11-071-0/+13
|
* Fixes asyncnet example.Dominik Picheta2014-09-181-1/+2
|
* Adds socket creation for arbitrary domain, type and protocol.Dominik Picheta2014-09-181-0/+4
|
* Add bool to determine if socket has been closed.Dominik Picheta2014-09-161-1/+3
|
* Lots of documentation improvements for asyncdispatch.Dominik Picheta2014-09-121-4/+14
| | | | Ref #1487.
* Fixes httpclient SSL issue. Implements unbuffered SSL recv. Ref #1487.Dominik Picheta2014-09-061-21/+33
|
* Fixes asynchttpserver.Dominik Picheta2014-09-011-2/+2
|
* Async SSL support.Dominik Picheta2014-08-311-18/+156
|
* Case fixes for network modules.Dominik Picheta2014-08-301-15/+15
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* big renameAraq2014-08-271-6/+8
|
* Fix asyncnet example. Rearrange net code.Dominik Picheta2014-08-101-2/+2
|
* Added SafeDisconn for accept.Dominik Picheta2014-08-101-4/+5
|
* Fixes incorrect async exception handling. Adds sleepAsync.Dominik Picheta2014-08-091-2/+2
| | | | | | | | | | | | | | The tasyncexceptions test has been added which tests for this incorrect exception handling behaviour. The problem was that the exception was raised inside a callback which was called from a previously finished async procedure. This caused a "Future already finished" error. The fix was to simply reraise the exception if the retFutureSym is already finished. sleepAsync was added to help with the reproduction of this test. It should also be useful for users however. Finally some debug information was added to futures to help with future bugs.
* Implement safe flags for socket operations.Dominik Picheta2014-07-131-17/+20
|
* Fix broken async tests.Dominik Picheta2014-07-131-1/+1
|
* Many async optimisations.Dominik Picheta2014-07-121-22/+52
| | | | | | | | | * Selectors implementation will now attempt to immediately execute an IO operation instead of waiting for a ready notification. * Removed recursion in asynchttpserver. * Improved buffered implementation of recvLine in asyncnet. * Optimised ``respond`` in asynchttpserver removing a possible "Delayed ACK" situation.
* Rename asyncdispatch.close to asyncdispatch.closeSocket.Dominik Picheta2014-05-231-1/+1
|
* Fixes buffered recv in asyncnet.Dominik Picheta2014-04-301-11/+17
|
* Implemented buffering for asynchronous sockets.Dominik Picheta2014-04-131-2/+36
|
* fixes for asynchttpserverAndreas Rumpf2014-04-131-0/+1
|
* Updates docs and news.Dominik Picheta2014-04-061-0/+38
|
* Async httpclient should now work. Changed recv behaviour.Dominik Picheta2014-04-031-2/+3
| | | | | | | asyncdispatch.recv no longer guarantees that it will read ALL the data requested. The underlying WinAPI function doesn't guarantee this and it already wasn't guaranteed anyway since the socket could disconnect mid-transmission.
* Implemented async for httpclient.Dominik Picheta2014-03-261-1/+1
|
* Move asyncdispatch tests to asyncnet.Dominik Picheta2014-03-261-34/+74
|
* Moved the global dispatcher to asyncdispatch.Dominik Picheta2014-03-231-11/+19
|
* Many renames. Created high level asyncnet module.Dominik Picheta2014-03-221-0/+147