Changeset 160

Show
Ignore:
Timestamp:
04/13/08 03:29:09 (7 months ago)
Author:
eric.dumin..@gmail.com
Message:

Trying to fix stack_level_too_deep problem.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/oo_indexer/lib/picolena/templates/app/models/indexer.rb

    r159 r160  
    3939     
    4040    def index_directory_with_multithreads(dir) 
    41       log :debug => "Indexing #{dir}, #{MaxThreadsNumber} multithreads" 
     41      log :debug => "Indexing #{dir}, #{MaxThreadsNumber} threads" 
    4242       
    43       @indexing_list=Dir[File.join(dir,"**/*")].select{|filename| 
     43      indexing_list=Dir[File.join(dir,"**/*")].select{|filename| 
    4444        File.file?(filename) && filename !~ Exclude 
    4545      } 
    4646       
    47       MaxThreadsNumber.threads{launch_indexing_chain(@indexing_list)} 
     47      # Cutting indexing_list in slices to avoid treating too big a list. 
     48      # Migth raise a "stack level too deep" otherwise. 
     49      indexing_list.each_slice(100*MaxThreadsNumber){|indexing_list_chunk| 
     50        log :debug => "NEW CHUNK!!!!!!!!!!" 
     51        @indexing_list_chunk=indexing_list_chunk 
     52        MaxThreadsNumber.threads{launch_indexing_chain(@indexing_list_chunk)} 
     53      } 
    4854    end 
    4955