Falco Peijnenburg
798d9e8967
Fixes MVar blocking exception
...
Uses the fix mentioned by @arianvp in
https://github.com/haskell-servant/servant/pull/425 .
See also
https://github.com/haskell-servant/servant/issues/51#issuecomment-250737727
The cause of the issue very is similar to the issue described
in this blog post:
https://www.fpcomplete.com/blog/2016/06/async-exceptions-stm-deadlocks
The main thread creates a waiter, creates an asynchronous callback which is
called when the `readyState` of the request changes. When the readyState
changes to 4, which means 'request finished', the waiter MVar is put.
The main thread takes the MVar and continues to do stuff with the response.
The problem is that the `readyState` can change to 4 more than once,
for some reason. The second time this happens, the waiter MVar can be put
again, since the main thread took it. The main thread, however, won't take
it again. After all, it only needed to take the MVar once to know that the
request was finished. The third time `readyState` is set to 4, the putMVar
would block, causing the following exception to be thrown:
```
thread blocked indefinitely in an MVar operation
```
Since state 4 should really mean that the response is ready, it seems
appropriate to decide that all changes of the state to 4 after the initial one
can be safely ignored.
2016-09-30 18:12:22 +02:00
Falco Peijnenburg
2082abf17b
Merge branch 'master' of github.com:haskell-servant/servant into client-ghcjs
2016-09-26 15:32:53 +02:00
Sönke Hahn
bc1a3e7faa
bump version
2016-09-17 11:47:57 -04:00
Sönke Hahn
d7d22b8050
tweake changelogs for the upcoming release
2016-09-17 11:46:26 -04:00
Julian K. Arni
501212e6b9
Review fixes
2016-09-12 20:40:03 -03:00
Julian K. Arni
0870b3b2f5
Remove FromFormUrlEncoded and ToFormUrlEncoded.
...
In favor of FromForm and ToForm from the new version of http-api-data.
2016-09-12 18:34:18 -03:00
Oleg Grenrus
f44b336bf1
Support http-api-data-0.3
2016-09-12 18:34:00 -03:00
Christian Klinger
7a7f7d7cf5
changed ClientM to be a Reader of ClientEnv
2016-09-08 00:17:13 +02:00
Julian K. Arni
bf824a3889
Bump version to 0.8.1
2016-09-02 13:09:47 -03:00
Sönke Hahn
b1f143010e
servant-client: fix compilation when building with http-client < 0.4.30
2016-08-14 20:27:50 +02:00
Oleg Grenrus
6999b00297
Support aeson-1
2016-08-07 20:12:09 +03:00
Sönke Hahn
187fe5b139
Merge tag 'v0.8' into client-ghcjs_7.1
2016-07-19 18:59:26 +02:00
Oleg Grenrus
197ed0548a
Use parseRequest
2016-07-18 14:40:05 +02:00
Jonathan Lange
d945c99f82
Test whole list in CaptureAll client tests
2016-07-11 14:47:05 +01:00
Jonathan Lange
7fb9a95711
servant-client support for CaptureAll
2016-07-11 14:46:31 +01:00
Sönke Hahn
8eb412ff23
bump version
2016-07-10 17:21:36 +02:00
Sönke Hahn
d45c7c5897
support http-client-0.5
2016-07-09 18:36:00 +02:00
Oleg Grenrus
a7a3294752
Add bounds to servant, servant-server and servant-clients
...
(cherry picked from commit a0d5ed9aea
)
2016-07-09 18:33:19 +02:00
Sönke Hahn
6c5afe8fb3
Merge remote-tracking branch 'origin/master' into client-ghcjs_update-stack-file
2016-07-09 15:53:58 +02:00
Oleg Grenrus
dc9afe6405
Add upper bounds http-client <0.5
2016-07-05 12:27:30 +03:00
Sönke Hahn
5effdfdbbb
Rename type variables 'layout' and 'sublayout' to 'api'
2016-07-03 22:46:46 +08:00
Julian K. Arni
023368c396
CPP deprecated parseUrl function.
2016-07-03 22:43:52 +08:00
Sönke Hahn
cd22bf759e
servant-client: update stack-ghcjs.yaml file for testsuite
2016-06-14 16:31:56 +08:00
Julian K. Arni
bd3670f54d
Remove host param from servant-client README.
2016-05-25 17:38:25 +02:00
Sönke Hahn
5c91864ee4
servant-client: support for ghcjs
2016-05-13 15:41:07 +08:00
Julian Arni
ea36656dcd
Merge pull request #505 from haskell-servant/jkarni/reexport-application
...
Re-export Application.
2016-05-12 10:38:46 +02:00
Julian K. Arni
211254512e
Re-export Application.
2016-05-11 12:17:36 +02:00
Sönke Hahn
d8a4cce691
version bump
2016-05-11 12:09:25 +08:00
Sönke Hahn
5579c21050
added changelog entries for 0.7.1
2016-05-11 12:09:25 +08:00
Julian K. Arni
7174f5185d
Changelog updates for GHC 8.0 support.
2016-05-10 22:45:29 +02:00
Oleg Grenrus
008f2434ee
Add -Wno-redundant-constraints
2016-05-10 19:09:59 +03:00
Sönke Hahn
e0216781b0
set the homepage to readthedocs
2016-04-22 14:12:21 +08:00
Sönke Hahn
29be5761ce
servant-client: add Eq instance for ServantError
2016-04-21 15:27:08 +08:00
Sönke Hahn
b26bbfccda
travis: enable -Wall -Werror
2016-04-21 13:06:10 +08:00
Alexander Bondarenko
b13ecd6098
Add missing changelogs and readme to cabal in servant
, servant-client
.
2016-04-16 16:51:38 +03:00
Sönke Hahn
ab6131d733
version bump
2016-04-15 18:35:17 +08:00
Luke Cycon
21546991af
Introduce a Handler
alias for ExceptT ServantErr IO
...
Fixes #434
2016-04-11 22:27:29 -07:00
Sönke Hahn
c2c9bef571
version bump
2016-04-07 18:24:29 +08:00
Sönke Hahn
933a2c4445
re-export ClientM
from Servant.Client
.
2016-04-05 17:51:25 +08:00
Sönke Hahn
14a8139cbe
version bump
2016-04-04 16:22:11 +08:00
Sönke Hahn
2367ee9965
put 0.6 into changelogs
2016-04-04 16:22:11 +08:00
Alexander Kjeldaas
4f558971d1
Removed FromText references from docs.
2016-04-01 22:56:19 +02:00
mbg
6fd1e21580
Updated changelog to reflect that client no longer requires BaseUrl and Manager arguments
2016-03-30 22:51:08 +01:00
mbg
9e1ba9221d
Manager and BaseUrl are now explicit parameters of all client functions, instead of ReaderTs
2016-03-30 22:41:39 +01:00
mbg
41129e98b3
Removed GetNth and GetLast type classes
2016-03-28 18:01:53 +01:00
mbg
316737c16d
Updated documentation in Client.hs to reflect the changes to the client function
2016-03-28 14:56:50 +01:00
mbg
89b0758dc8
Changed servant-client tests to reflect the changes to the client function
2016-03-28 14:52:33 +01:00
mbg
7379b7486a
Moved BaseUrl and Manager parameters from the client function to the Client type as discussed in #428
2016-03-28 14:51:07 +01:00
Julian K. Arni
101e138a4b
Cut 0.5 in changelogs
2016-03-19 13:26:13 +01:00
aaron levin
b3af5a8d95
Move general authentication to Experimental module
...
Removes the UndecidableInstances extension in the module containing the
HasServer instances.
2016-03-09 22:30:34 +01:00