diff options
author | MarcoFalke <falke.marco@gmail.com> | 2018-07-31 20:50:18 -0400 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2018-07-31 20:52:05 -0400 |
commit | e83d82a85c53196aff5b5ac500f20bb2940663fa (patch) | |
tree | c58c2d14bdcc61e149d2b5739de0eb5034820d8a /test/functional/wallet_labels.py | |
parent | 0fb9c87815d180031b7924607946e51f860c3ba8 (diff) | |
parent | cbeaa91dbb1bc3ee6c05f3ee55a71268b8db2035 (diff) |
Merge #13247: Add tests to SingleThreadedSchedulerClient() and document the memory model
cbeaa91dbb Update ValidationInterface() documentation to explicitly specify threading and memory model (Jesse Cohen)
b296b425a7 Update documentation for SingleThreadedSchedulerClient() to specify the memory model (Jesse Cohen)
9994d01d8b Add Unit Test for SingleThreadedSchedulerClient (Jesse Cohen)
Pull request description:
As discussed in #13023 I've split this test out into a separate pr
This test (and documentation update) makes explicit the guarantee (previously undefined, but implied by the 'SingleThreaded' in `SingleThreadedSchedulerClient()`) - that callbacks pushed to the `SingleThreadedSchedulerClient()` obey the single threaded model for memory and execution - specifically, the callbacks are executed fully and in order, and even in cases where a subsequent callback is executed by a different thread, sequential consistency of memory for all threads executing these callbacks is maintained.
Maintaining memory consistency should make the api more developer friendly - especially for users of the validationinterface. To the extent that there are performance implications from this decision, these are not currently present in practice because all use of this scheduler happens on a single thread currently, furthermore the lock should guarantee consistency across callback executions even when callbacks are executed by multiple threads (as the test does).
Tree-SHA512: 5d95a7682c402e5ad76b05bc9dfbca99ca64105f62ab9e78f6fc0f6ea8c5277aa399fbb94298e35cc677b0c2181ff17259584bb7ae230e38aa68b85ecbc22856
Diffstat (limited to 'test/functional/wallet_labels.py')
0 files changed, 0 insertions, 0 deletions