diff options
author | Joey Hess <joey@kitenet.net> | 2013-01-26 17:12:15 +1100 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-01-26 17:15:14 +1100 |
commit | 0563ee36521e49eb74c7105fe270bce585325ab9 (patch) | |
tree | 175726d838930cdabee3890066f27ac41f71c12d /doc/design | |
parent | dc60216eb8fe919acf7ab3984a5f0bf0e0193f6b (diff) |
blog for the day
Diffstat (limited to 'doc/design')
-rw-r--r-- | doc/design/assistant/blog/day_176__thread_management.mdwn | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_176__thread_management.mdwn b/doc/design/assistant/blog/day_176__thread_management.mdwn new file mode 100644 index 000000000..38f043fcf --- /dev/null +++ b/doc/design/assistant/blog/day_176__thread_management.mdwn @@ -0,0 +1,13 @@ +Got back to hacking today, and did something I've wanted to do for some +time. Made all the assistant's threads be managed by a thread manager. This +allows restarting threads if they crash, by clicking a button in the +webapp. It also will allow for other features later, like stopping and +starting the watcher thread, to pause the assistant adding local files. + +[[!img /assistant/crashrecovery.png]] + +I added the haskell async library as a dependency, which made this pretty +easy to implement. The only hitch is that async's documentation is not +clear about how it handles asyncronous exceptions. It took me quite a while +to work out why the errors I'd inserted into threads to test were crashing +the whole program rather than being caught! |