Maybe I need more coffee, but a possible heads-up: The current 
implementation doesn't seem to match the documentation -- wouldn't the 
with-handlers need to move inside the loop, for it to be infinite?

https://github.com/Kalimehtar/thread-utils/blob/master/main.rkt#L35-L41

On Tuesday, May 19, 2020 at 9:11:54 PM UTC-4, David Storrs wrote:
>
> Perfect, thank you.
>
> On Tue, May 19, 2020 at 5:28 PM George Neuner <[email protected] 
> <javascript:>> wrote:
>
>> On Tue, 19 May 2020 12:01:54 -0400, David Storrs
>> <[email protected] <javascript:>> wrote:
>>
>> >I'm using the file-watchers module to keep an eye on a directory tree and
>> >trigger various actions whenever something changes.  I had an issue where
>> >an exception was thrown, the thread died, and file watching therefore
>> >stopped.  The immediate solution is to wrap a with-handlers around it so 
>> it
>> >doesn't end up killing the thread, but this made me wonder if there's an
>> >easy way to do this automatically?
>> >
>> >What I'm thinking of is "Create a thread that will do something in a 
>> loop.
>> >Ensure that the thread remains running and restart it if it dies for any
>> >reason.  Also, make sure that it runs periodically."  I can think of a
>> >solution involving multiple threads, channels, and polling to ensure that
>> >the 'daemonized' threads are running, but I was wondering if there's a
>> >built-in or existing answer.
>>
>> There is a package called "thread-utils" which claims error safe
>> looping threads.
>> https://pkgs.racket-lang.org/package/thread-utils
>>
>> *Disclaimer*  I have never tried it.
>>
>>
>> I can think of a some possible implementations, but they all involve
>> monitoring by a separate thread (which could be the main thread).
>> Channels aren't necessary - monitoring can be done using events.
>>
>> Restarting a (possibly failed) computation IN a running thread is
>> relatively simple - if you know what errors or events might occur. The
>> problem is that a thread can't restart itself if somehow it gets
>> suspended or killed.
>>
>> George
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/racket-users/uvi8cftuuvfkq0cqm27m0icvhhq5mpupuo%404ax.com
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/a1eba505-25f5-4ced-8f40-644fbced1e07%40googlegroups.com.

Reply via email to