What exactly does Ruby's warning message

    "warning: block for Proc#call is useless"

mean? I'm getting it in a case where it doesn't seem appropriate. The
code executes several times with no problem, but the warning comes out
every so often (this executes in a loop). Inserting an arbitrary
statement can make it go away. For example, inserting "$stderr.putc(?Z)"
right after the "openQueue()" prevents it, but inserting "x=33" in the
same place does not (timing?).

The code seems to run fine despite the warnings, but I have a nagging
thought that there might be something wrong that I just can't see. Any
ideas? This is under Ruby 1.6.4, FreeBSD 4.0.

Bob


Code fragment:

   #
   # Lock the queue and get header data.
   #
   openQueue(true)
   #
   # Look for an entry in the in-process set which has no "owner".
   #
   begin
    Dir.foreach(@inProcessDir) do |inProcessName|           <------
"warning: block for Proc#call is useless"
     next if inProcessName == '.' || inProcessName == '..'
     inProcessPath = File.join(@inProcessDir, inProcessName)
     if inProcessFile = openAndLock(inProcessPath, "r+",
       File::LOCK_EX | File::LOCK_NB, true)
      entry = inProcessFile.read()
      unless inProcess
       File.delete(inProcessPath)
       inProcessFile.close()
      end
      @inProcessFile = inProcessFile
      closeQueue()
      @wasInProcess = true
      return entry
     end
    end
   rescue Errno::ENOENT
   end