Commit Graph

66 Commits

Author SHA1 Message Date
Dominik Picheta
3751019823 Fix infinite recursion when await is in except body. 2015-03-30 00:42:21 +01:00
def
fd4e629905 Rename PNimrodNode to NimNode 2015-03-17 17:50:32 +01:00
def
a4009e32ea Get rid of 'result shadowed' warning for async procs 2015-03-11 12:46:53 +01:00
Araq
d58212ccc5 fixes #1940; code breakage! stricter template evaluation 2015-03-07 15:43:36 +01:00
Federico Ceratto
657dca5c3b Fix typos 2015-02-15 16:20:32 +00:00
Dominik Picheta
03019849fc Async await try statement fixes. 2015-02-09 23:00:07 +00:00
Guillaume Gelin
3119fe087d Happy new year! 2015-01-06 15:26:33 +01:00
def
d60d007281 Close async socket on error (instead of looping on epoll_wait with 100% CPU) 2015-01-04 22:59:41 +01:00
Dominik Picheta
c0207dbae2 More deprecation warning fixes (asyncdispatch, uri). 2014-12-26 16:56:19 +00:00
Araq
b7c8063816 fixes #1689 2014-12-10 21:00:02 +01:00
def
f52fd8785f Fix some deprecation warnings caused by renames 2014-11-13 21:34:46 +01:00
Dominik Picheta
baae9bfea8 s/sock/fd/. Fixes #1487. 2014-09-27 17:15:32 +01:00
Dominik Picheta
867dfbfbfa Adds socket creation for arbitrary domain, type and protocol. 2014-09-18 17:03:23 +01:00
Dominik Picheta
6f155af802 Lots of documentation improvements for asyncdispatch.
Ref #1487.
2014-09-12 22:54:02 +01:00
Dominik Picheta
4db6535025 Fixes for new comment handling. 2014-09-09 11:43:54 +01:00
Dominik Picheta
dd33069d59 Implements getCurrentException for try in async procs. Ref #1487. 2014-09-09 01:16:28 +01:00
Dominik Picheta
6689fa68f5 Multiple exception idents in except for async. Ref #1487. 2014-09-08 22:04:09 +01:00
Dominik Picheta
bd542ebea3 Fixes httpclient SSL issue. Implements unbuffered SSL recv. Ref #1487. 2014-09-06 15:29:38 +01:00
Dominik Picheta
52c16a1a79 Implemented asyncfile for Posix. 2014-09-05 21:14:18 +01:00
Dominik Picheta
0f3025e320 Added Windows asyncfile implementation. 2014-09-05 17:36:16 +01:00
Dominik Picheta
f6dc76cfe3 Case sensitivity fixes for Posix. 2014-08-30 15:52:04 +01:00
Dominik Picheta
cff2a0c0b4 Case fixes for network modules. 2014-08-30 11:59:08 +01:00
Dominik Picheta
361657dea4 Merge branch 'devel' into bigbreak
Conflicts:
	lib/pure/ftpclient.nim
2014-08-30 11:58:54 +01:00
Dominik Picheta
85107917f0 Async macro fixes. Added waitFor. 2014-08-29 22:41:52 +01:00
Araq
27869b6c7b big rename 2014-08-28 00:36:14 +02:00
Araq
11b6958755 big rename 2014-08-27 23:42:51 +02:00
Dominik Picheta
a0b2fb5bd7 Implements or and and for futures. Ref #1487. 2014-08-19 20:54:12 +01:00
Dominik Picheta
bd32255f90 Fixes #1158. 2014-08-14 19:03:31 +01:00
Dominik Picheta
ef2f377bfa Added SafeDisconn for accept. 2014-08-10 11:39:37 +01:00
Dominik Picheta
7358fc256f More future debug info. Added new error code to SafeDisconn list. 2014-08-09 20:50:06 +01:00
Dominik Picheta
f8e714bd30 Fixes async on Linux. 2014-08-09 18:10:45 +01:00
Dominik Picheta
4f5f98f0b1 Fixes incorrect async exception handling. Adds sleepAsync.
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.
2014-08-09 17:13:22 +01:00
Dominik Picheta
41bb0bf9dc Added debug code for futures. 2014-07-14 21:06:04 +01:00
Dominik Picheta
2158952917 Linux async fixes. 2014-07-13 22:43:52 +01:00
Dominik Picheta
ac8ddb0720 Implement safe flags for socket operations. 2014-07-13 22:32:39 +01:00
Dominik Picheta
374706b1c3 Void futures are no longer discardable. 2014-07-13 10:19:48 +01:00
Dominik Picheta
634a416c67 Async fixes for Linux. 2014-07-13 00:11:05 +01:00
Dominik Picheta
cf5c8a204e Many async optimisations.
* 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.
2014-07-12 22:51:06 +01:00
Dominik Picheta
f830aed869 AsyncHttpServer now supports POST. 2014-06-28 13:08:11 +01:00
Dominik Picheta
9ea0d0c59e Futures with an error but no callback no longer raise.
This was done as a safety measure against futures which may be
accidentally discarded when they have an exception leading the exception
being silently forgotten. Unfortunately we will need to come up with
some other solution.
2014-06-28 12:16:08 +01:00
Dominik Picheta
7ebbc09578 Allow async lambdas. Other socket modifications. 2014-06-19 00:05:27 +01:00
Dominik Picheta
b4366366d1 Clean createVar template. 2014-05-25 13:09:18 +01:00
Dominik Picheta
d54b902441 Modified future behaviour when completing with an exception.
Futures will now raise the exception if they did not have a callback
associated with them.
2014-05-24 15:55:39 +01:00
Dominik Picheta
b386d38208 Add asyncdispatch.unregister. 2014-05-24 15:55:37 +01:00
Dominik Picheta
6a38d36239 Rename asyncdispatch.close to asyncdispatch.closeSocket. 2014-05-23 13:14:28 +01:00
EXetoC
b1c865a656 Fix #1170. 2014-05-04 01:52:42 +02:00
EXetoC
8802688e9f Fix #1171. 2014-05-03 23:32:14 +02:00
Dominik Picheta
a21289f5d5 Await is now supported in try statements. 2014-05-01 23:27:43 +01:00
Dominik Picheta
6c4870d812 Get rid unsafe pointer type in GetQueuedCompletionStatus. 2014-04-30 17:38:44 +01:00
Araq
d438ecc246 async might work now reliably 2014-04-30 00:52:58 +02:00