Changeset 349
- Timestamp:
- 04/20/08 04:09:29 (7 months ago)
- Files:
-
- 1 modified
-
trunk/thrudex/src/CLuceneIndex.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thrudex/src/CLuceneIndex.cpp
r347 r349 56 56 } 57 57 58 59 58 string idx_path = index_root + "/" + index_name; 60 59 bool new_index; … … 111 110 112 111 ram_prev_directory = shared_ptr<CLuceneRAMDirectory> (new CLuceneRAMDirectory()); 113 ram_ directory->__cl_addref(); //trick clucene's lame ref counters112 ram_prev_directory->__cl_addref(); //trick clucene's lame ref counters 114 113 115 114 ram_bloom = shared_ptr<bloom_filter> (new bloom_filter(filter_space,1.0/(1.0 * filter_space), random_seed)); … … 168 167 169 168 modifier->flush(); 170 169 171 170 ram_searcher.reset(); 172 171 172 //shared_ptr<CLuceneRAMDirectory> l_ram_readonly_directory = ram_readonly_directory; 173 173 174 //make a copy of the ram dir since its not thread safe 174 ram_readonly_directory = shared_ptr<CLuceneRAMDirectory>(new CLuceneRAMDirectory( ram_directory.get() ));175 ram_readonly_directory.reset( new CLuceneRAMDirectory( ram_directory.get() ), null_deleter() ); 175 176 ram_readonly_directory->__cl_addref(); //trick clucene's lame ref counters 176 177 177 178 ram_searcher.reset(new IndexSearcher( ram_readonly_directory.get() )); 178 179 179 180 180 //since clucene doesn't use shared_ptr we need to get the … … 186 186 if(syncing){ 187 187 //make a copy of the ram dir since its not thread safe 188 ram_readonly_prev_directory = shared_ptr<CLuceneRAMDirectory>(new CLuceneRAMDirectory( ram_prev_directory.get() )); 189 ram_readonly_prev_directory->__cl_addref(); //trick clucene's lame ref counters 190 188 ram_readonly_prev_directory = shared_ptr<CLuceneRAMDirectory>(new CLuceneRAMDirectory( ram_prev_directory.get() ), null_deleter() ); 189 ram_readonly_prev_directory->__cl_addref(); //trick clucene's lame ref counters 191 190 192 191 ram_prev_searcher.reset(new IndexSearcher( ram_readonly_prev_directory.get() )); … … 504 503 shared_ptr<bloom_filter> l_ram_bloom; 505 504 shared_ptr<CLuceneRAMDirectory> l_ram_directory; 505 shared_ptr<CLuceneRAMDirectory> l_ram_ro_dir; 506 506 shared_ptr<set<string> > l_disk_deletes; 507 507 shared_ptr<bloom_filter> l_disk_bloom; … … 525 525 l_disk_bloom = disk_bloom; 526 526 527 l_ram_ro_dir.reset( new CLuceneRAMDirectory( l_ram_directory.get() ) ); 528 l_ram_ro_dir->__cl_addref(); //trick clucene's lame ref counters 529 527 530 //create new handles 528 531 ram_directory.reset(new CLuceneRAMDirectory()); … … 572 575 Directory *dirs[2]; 573 576 574 dirs[0] = l_ram_ directory.get();577 dirs[0] = l_ram_ro_dir.get(); 575 578 dirs[1] = NULL; 576 579
