Page MenuHomePhabricator

Merge #12366: http: Join worker threads before deleting work queue
ClosedPublic

Authored by jasonbcox on Feb 14 2019, 01:11.

Details

Summary

11e0151 http: Remove numThreads and ThreadCounter (Wladimir J. van der Laan)
f946654 http: Remove WaitExit from WorkQueue (Wladimir J. van der Laan)
b1c2370 http: Join worker threads before deleting work queue (Wladimir J. van der Laan)

Pull request description:

This prevents a potential race condition if control flow ends up in
`ShutdownHTTPServer` before the thread gets to `queue->Run()`,
deleting the work queue while workers are still going to use it.

Meant to fix #12362.

Tree-SHA512: 8108514aeee5b2067a3736ed028014b580d1cbf8530ac7682b8a23070133dfa1ca21db4358c9158ea57e8811e0551395b6cb769887876b9cfce067ee968d0642

Backport Core PR12366
https://github.com/bitcoin/bitcoin/pull/12366/files
Completes T539

Test Plan

ninja check check-functional
make check

Diff Detail

Repository
rABC Bitcoin ABC
Branch
pr12366
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 4982
Build 8027: Bitcoin ABC Buildbot (legacy)
Build 8026: arc lint + arc unit

Event Timeline

markblundeberg added a subscriber: markblundeberg.

A nice simplification and improvement. Presumably there is no chance that StopHTTPServer will be called during StartHTTPServer execution, as they are only ever called from a particular thread?

This revision is now accepted and ready to land.Feb 14 2019, 06:08