]> source.dussan.org Git - gitea.git/commit
Wrap the code indexer (#9476)
authorzeripath <art27@cantab.net>
Tue, 24 Dec 2019 07:26:34 +0000 (07:26 +0000)
committerLunny Xiao <xiaolunwen@gmail.com>
Tue, 24 Dec 2019 07:26:34 +0000 (15:26 +0800)
commit30181d459da79ef57c58bb3789e2ce7130d08b77
tree7bb0b7bca82561f47d785faebcef2a9fdc581ee7
parent34688e1db37cebe76df73ab47bc57764821c787c
Wrap the code indexer (#9476)

* Wrap the code indexer

In order to prevent a data race in the code indexer it must be wrapped
with a holder otherwise it is possible to Search/Index on an
incompletely initialised indexer, and search will fail with a nil
pointer until the repository indexer is initialised.

Further a completely initialised repository indexer should not be closed
until Termination otherwise actions in Hammer/Shutdown phases could
block or be lost.

Finally, there is a complex dance of shutdown etiquette should the index
initialisation fail. This PR restores that.

* Always return err if closed whilst waiting

Co-authored-by: techknowlogick <matti@mdranta.net>
modules/indexer/code/indexer.go
modules/indexer/code/queue.go
modules/indexer/code/wrapped.go [new file with mode: 0644]