On Jan 16, 12:47 pm, Christophe Grand <christo...@cgrand.net> wrote:
> BerlinBrown a écrit :
>
> > Thanks all, this is what I ended up with:
> > For noobs like myself,  I am using this code to monitor files and
> > refresh it when the file gets modified.  I used 'ref' and 'agent'.
>
> > (def  file-monitor-agent (agent false))
> > (def  file-state (ref {:open-state false}))
> > (defn get-file-state [] (@file-state :open-state))
> > (defn set-file-state [state] (dosync (commute file-state assoc :open-
> > state state)))
>
> > (defn file-monitor-loop []
> >   (let [delay-t (prop-int resources-core-sys
> > "Octane_Sys_filemonitor_delay")
> >         enable-file-mon (prop-bool resources-win-opts
> > "file_monitor_enabled")]
> >     (send file-monitor-agent
> >           (fn [_]
> >               (when enable-file-mon
> >                 (loop []
> >                   (when (not (. shell (isDisposed)))
> >                     (. Thread sleep delay-t)
> >                     (println "Woot!!!")
> >                     (recur))))))))
>
> Since the action you send to your agent doesn't end you should send it
> using send-off ('send-off will give your action its own thread while
> 'send use a fixed thread pool).
> But, given that you don't care about the agent value, it would be better
> to simply use a thread (clojure's fns are Runnables):
>
> (defn file-monitor-loop []
>   (let [delay-t (prop-int resources-core-sys
> "Octane_Sys_filemonitor_delay")
>         enable-file-mon (prop-bool resources-win-opts
> "file_monitor_enabled")]
>     (when enable-file-mon
>       (.start (Thread.
>                 #(while (not (.isDisposed shell))
>                    (Thread/sleep delay-t)
>                    (println "Woot!!!")))))))
>
> Christophe

What is the '#' in this example.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to