@@ -57,8 +57,9 @@ func (repo *Repository) updateIndexerStatus(sha string) error {
57
57
}
58
58
59
59
type repoIndexerOperation struct {
60
- repo * Repository
61
- deleted bool
60
+ repo * Repository
61
+ deleted bool
62
+ watchers []chan <- error
62
63
}
63
64
64
65
var repoIndexerOperationQueue chan repoIndexerOperation
@@ -312,26 +313,30 @@ func nonGenesisChanges(repo *Repository, revision string) (*repoChanges, error)
312
313
func processRepoIndexerOperationQueue () {
313
314
for {
314
315
op := <- repoIndexerOperationQueue
316
+ var err error
315
317
if op .deleted {
316
- if err : = indexer .DeleteRepoFromIndexer (op .repo .ID ); err != nil {
318
+ if err = indexer .DeleteRepoFromIndexer (op .repo .ID ); err != nil {
317
319
log .Error ("DeleteRepoFromIndexer: %v" , err )
318
320
}
319
321
} else {
320
- if err : = updateRepoIndexer (op .repo ); err != nil {
322
+ if err = updateRepoIndexer (op .repo ); err != nil {
321
323
log .Error ("updateRepoIndexer: %v" , err )
322
324
}
323
325
}
326
+ for _ , watcher := range op .watchers {
327
+ watcher <- err
328
+ }
324
329
}
325
330
}
326
331
327
332
// DeleteRepoFromIndexer remove all of a repository's entries from the indexer
328
- func DeleteRepoFromIndexer (repo * Repository ) {
329
- addOperationToQueue (repoIndexerOperation {repo : repo , deleted : true })
333
+ func DeleteRepoFromIndexer (repo * Repository , watchers ... chan <- error ) {
334
+ addOperationToQueue (repoIndexerOperation {repo : repo , deleted : true , watchers : watchers })
330
335
}
331
336
332
337
// UpdateRepoIndexer update a repository's entries in the indexer
333
- func UpdateRepoIndexer (repo * Repository ) {
334
- addOperationToQueue (repoIndexerOperation {repo : repo , deleted : false })
338
+ func UpdateRepoIndexer (repo * Repository , watchers ... chan <- error ) {
339
+ addOperationToQueue (repoIndexerOperation {repo : repo , deleted : false , watchers : watchers })
335
340
}
336
341
337
342
func addOperationToQueue (op repoIndexerOperation ) {
0 commit comments