diff options
author | Joey Hess <joey@kitenet.net> | 2011-04-19 14:45:19 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-04-19 14:45:19 -0400 |
commit | a441e08da1e6305f36db782ec9eda44f213ffa29 (patch) | |
tree | 7f2c0fbbdf9dd779cb020faed1614bbd6f69eabc /doc/bugs/encrypted_S3_stalls.mdwn | |
parent | 1687fecd33ff73a71b2084532e9731796758047a (diff) |
Fix stalls in S3 when transferring encrypted data.
Stalls were caused by code that did approximatly:
content' <- liftIO $ withEncryptedContent cipher content return
store content'
The return evaluated without actually reading content from S3,
and so the cleanup code began waiting on gpg to exit before
gpg could send all its data.
Fixing it involved moving the `store` type action into the IO monad:
liftIO $ withEncryptedContent cipher content store
Which was a bit of a pain to do, thank you type system, but
avoids the problem as now the whole content is consumed, and
stored, before cleanup.
Diffstat (limited to 'doc/bugs/encrypted_S3_stalls.mdwn')
-rw-r--r-- | doc/bugs/encrypted_S3_stalls.mdwn | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/doc/bugs/encrypted_S3_stalls.mdwn b/doc/bugs/encrypted_S3_stalls.mdwn index c4484b9c4..109e6e793 100644 --- a/doc/bugs/encrypted_S3_stalls.mdwn +++ b/doc/bugs/encrypted_S3_stalls.mdwn @@ -5,3 +5,5 @@ dialup. There was a similar issue with bup, which I fixed by forking a process rather than using a thread to do some IO. Probably need the same here. --[[Joey]] + +[[done]] --[[Joey]] |