summaryrefslogtreecommitdiff
path: root/ot_fullscrape.c
diff options
context:
space:
mode:
Diffstat (limited to 'ot_fullscrape.c')
-rw-r--r--ot_fullscrape.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/ot_fullscrape.c b/ot_fullscrape.c
index 5f61afd..9a6effb 100644
--- a/ot_fullscrape.c
+++ b/ot_fullscrape.c
@@ -65,6 +65,8 @@ static void * fullscrape_worker( void * args ) {
65 fullscrape_make( &iovec_entries, &iovector, tasktype ); 65 fullscrape_make( &iovec_entries, &iovector, tasktype );
66 if( mutex_workqueue_pushresult( taskid, iovec_entries, iovector ) ) 66 if( mutex_workqueue_pushresult( taskid, iovec_entries, iovector ) )
67 iovec_free( &iovec_entries, &iovector ); 67 iovec_free( &iovec_entries, &iovector );
68 if( !g_opentracker_running )
69 return NULL;
68 } 70 }
69 return NULL; 71 return NULL;
70} 72}
@@ -150,7 +152,7 @@ static void fullscrape_make( int *iovec_entries, struct iovec **iovector, ot_tas
150 /* Get exclusive access to that bucket */ 152 /* Get exclusive access to that bucket */
151 ot_vector *torrents_list = mutex_bucket_lock( bucket ); 153 ot_vector *torrents_list = mutex_bucket_lock( bucket );
152 size_t tor_offset; 154 size_t tor_offset;
153 155
154 /* For each torrent in this bucket.. */ 156 /* For each torrent in this bucket.. */
155 for( tor_offset=0; tor_offset<torrents_list->size; ++tor_offset ) { 157 for( tor_offset=0; tor_offset<torrents_list->size; ++tor_offset ) {
156 /* Address torrents members */ 158 /* Address torrents members */
@@ -202,8 +204,12 @@ static void fullscrape_make( int *iovec_entries, struct iovec **iovector, ot_tas
202 IF_COMPRESSION( r = compress_buffer; ) 204 IF_COMPRESSION( r = compress_buffer; )
203 } 205 }
204 206
205 /* All torrents done: release lock on currenct bucket */ 207 /* All torrents done: release lock on current bucket */
206 mutex_bucket_unlock( bucket ); 208 mutex_bucket_unlock( bucket );
209
210 /* Parent thread died? */
211 if( !g_opentracker_running )
212 return;
207 } 213 }
208 214
209 if( ( mode & TASK_TASK_MASK ) == TASK_FULLSCRAPE ) 215 if( ( mode & TASK_TASK_MASK ) == TASK_FULLSCRAPE )