On Sep 22, 2008, at 4:36 PM, Siep Korteling wrote:

> Junkone wrote:
>> On Sep 20, 11:15pm, Tim Pease <tim.pe... / gmail.com> wrote:
>>>
>>> Blessings,
>>> TwP
>>
>> i tried as you suggested and have a few q.
>> i am trying to run a ruby prog to execute if there is any new file in
>> a directory. i started out with the examples but am a little confused
>> on how to useit.
>> this prog seems to be looking at the current directory where it is
>> running and not where i had specificed it to watch with dw.glob.
>>
>> appreciate any help.
>>
>> seede
>>
> (...)
> Hm, I can't get it to work either (on WinXP).
>
> require 'directory_watcher'
>   dw = DirectoryWatcher.new 'D:/temp/'
>   dw.interval=5
>   dw.add_observer {|*args| args.each {|event| puts event}}
>   dw.start
>   gets
>   dw.stop
>
> It does display the files ("added 'D:/temp/Pink_Pajamas.amv'" etc),  > but
> after that you can delete, add and edit files without  
> directory_watcher
> noticing anything. Is it broken on windows or am I doing something
> wrong?

The whole program is blocking on the "gets".

On the windows platform, all threads block when reading from standard  input. So the "gets" is causing all threads to wait including the  
directory watcher thread.

Try replacing the "gets" with a "sleep 30" or some other time interval.

Blessings,