Mercurial > hg > svcore
comparison transform/RealTimeEffectModelTransformer.cpp @ 497:b6dc6c7f402c
Various fixes:
 * Fix handling of HTTP redirects (avoiding crashes... I hope)
 * Fix failure to delete FFT models when a feature extraction model
   transformer was abandoned (also a cause of crashes in the past)
 * Fix deadlock when said transform was abandoned before its source
   model was ready because the session was being cleared (and so the
   source model would never be ready)
| author | Chris Cannam | 
|---|---|
| date | Fri, 28 Nov 2008 13:36:13 +0000 | 
| parents | 6036b38177e2 | 
| children | f84f147572b9 b4a8d8221eaf | 
   comparison
  equal
  deleted
  inserted
  replaced
| 496:05383ee78f3e | 497:b6dc6c7f402c | 
|---|---|
| 119 RealTimeEffectModelTransformer::run() | 119 RealTimeEffectModelTransformer::run() | 
| 120 { | 120 { | 
| 121 DenseTimeValueModel *input = getConformingInput(); | 121 DenseTimeValueModel *input = getConformingInput(); | 
| 122 if (!input) return; | 122 if (!input) return; | 
| 123 | 123 | 
| 124 while (!input->isReady()) { | 124 while (!input->isReady() && !m_abandoned) { | 
| 125 std::cerr << "RealTimeEffectModelTransformer::run: Waiting for input model to be ready..." << std::endl; | 125 std::cerr << "RealTimeEffectModelTransformer::run: Waiting for input model to be ready..." << std::endl; | 
| 126 sleep(1); | 126 usleep(500000); | 
| 127 } | 127 } | 
| 128 if (m_abandoned) return; | |
| 128 | 129 | 
| 129 SparseTimeValueModel *stvm = dynamic_cast<SparseTimeValueModel *>(m_output); | 130 SparseTimeValueModel *stvm = dynamic_cast<SparseTimeValueModel *>(m_output); | 
| 130 WritableWaveFileModel *wwfm = dynamic_cast<WritableWaveFileModel *>(m_output); | 131 WritableWaveFileModel *wwfm = dynamic_cast<WritableWaveFileModel *>(m_output); | 
| 131 if (!stvm && !wwfm) return; | 132 if (!stvm && !wwfm) return; | 
| 132 | 133 | 
