mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 01:41:11 +01:00
A decentralized bitcoin exchange network
23f871a78b
Make the 'dataMap' field a ConcurrentHashMap instead of a HashMap, to prevent a ConcurrentModificationException, which was recently observed when calling 'IgnoredMailboxMap::toProtoMessage' from the persistence manager inside the user thread during startup of bisq-desktop. Tracing through the code, this likely happened during an iteration through the keyset of 'dataMap' (to check for nulls, inside the proto serialisation logic during persistence), while simultaneously adding ignored mailbox messages to the map on a separate thread spawned from the method, 'MailboxMessageService::threadedBatchProcessMailboxEntries'. (The latter was made asynchronous so as not to block the UI.) (Since there is a call to 'PersistenceManager::requestPersistence' after every addition to the ignored mailbox map, there hopefully won't be any missed entries in the final persisted map, even though the snapshot of ConcurrentHashMap being iterated through won't be fresh as long as new entries are simultaneously added.) |
||
---|---|---|
.github | ||
.idea | ||
apitest | ||
assets | ||
build-logic | ||
cli | ||
code-coverage-report | ||
common | ||
core | ||
daemon | ||
desktop | ||
docs | ||
gradle | ||
p2p | ||
persistence | ||
platform | ||
proto | ||
regtest | ||
scripts | ||
seednode | ||
statsnode | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
Bisq1_icon.svg | ||
build.gradle | ||
CODEOWNERS | ||
CONTRIBUTING.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
Makefile | ||
pull_request_template.md | ||
README.md | ||
settings.gradle |
What is Bisq?
Bisq is a safe, private and decentralized way to exchange bitcoin for national currencies and other digital assets. Bisq uses peer-to-peer networking and multi-signature escrow to facilitate trading without a third party. Bisq is non-custodial and incorporates a human arbitration system to resolve disputes.
To learn more, see the doc and video at https://bisq.network/intro.
Get started using Bisq
Follow the step-by-step instructions at https://bisq.network/get-started.
Contribute to Bisq
See CONTRIBUTING.md and the developer docs.