blog for the day
This commit is contained in:
parent
76ddf9b6d3
commit
bfd409b00f
2 changed files with 13 additions and 0 deletions
BIN
doc/assistant/crashrecovery.png
Normal file
BIN
doc/assistant/crashrecovery.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
13
doc/design/assistant/blog/day_176__thread_management.mdwn
Normal file
13
doc/design/assistant/blog/day_176__thread_management.mdwn
Normal file
|
@ -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!
|
Loading…
Add table
Add a link
Reference in a new issue