Commit 0dd3f5c
committed
Squashed 'src/ipc/libmultiprocess/' changes from 3c69d125a1..27ada40809
27ada40809 build: move library sources under lib/ for subtree split
REVERT: 3c69d125a1 Merge bitcoin-core/libmultiprocess#260: event loop: tolerate unexpected exceptions in `post()` callbacks
REVERT: b8a48c65e6 event loop: tolerate unexpected exceptions in `post()` callbacks
REVERT: f787863d2c Merge bitcoin-core/libmultiprocess#270: doc: Bump version 10 > 11
REVERT: a22f602910 doc: Bump version 10 > 11
REVERT: 3edbe8f67c Merge bitcoin-core/libmultiprocess#268: Use throwRecoverableException instead of raw throw for stored exceptions
REVERT: 23be44b0d3 Use throwRecoverableException instead of raw throw for stored exceptions
REVERT: 75c2a2764c Merge bitcoin-core/libmultiprocess#266: test: increase spawn test child timeout to 30 seconds
REVERT: 8b5f805301 Merge bitcoin-core/libmultiprocess#267: doc: Bump version 9 > 10
REVERT: cc0b23fc32 test: increase spawn test child timeout to 30 seconds
REVERT: 050f878db8 doc: Improve versions.md descriptions and formatting
REVERT: c6a288a889 doc: Bump version 9 > 10
REVERT: 70f632bda8 Merge bitcoin-core/libmultiprocess#265: ci: set LC_ALL in shell scripts
REVERT: 8e8e564259 Merge bitcoin-core/libmultiprocess#249: fixes for race conditions on disconnects
REVERT: 05d34cc2ec ci: set LC_ALL in shell scripts
REVERT: e606fd84a8 Merge bitcoin-core/libmultiprocess#264: ci: reduce nproc multipliers
REVERT: ff0eed1bf1 refactor: Use loop variable in type-context.h
REVERT: ff1d8ba172 refactor: Move type-context.h getParams() call closer to use
REVERT: 1dbc59a4aa race fix: m_on_cancel called after request finishes
REVERT: 1643d05ba0 test: m_on_cancel called after request finishes
REVERT: f5509a31fc race fix: getParams() called after request cancel
REVERT: 4a60c39f24 test: getParams() called after request cancel
REVERT: f11ec29ed2 race fix: worker thread destroyed before it is initialized
REVERT: a1d643348f test: worker thread destroyed before it is initialized
REVERT: 336023382c ci: reduce nproc multipliers
REVERT: b090beb965 Merge bitcoin-core/libmultiprocess#256: ci: cache gnu32 nix store
REVERT: be8622816d ci: cache gnu32 nix store
REVERT: 975270b619 Merge bitcoin-core/libmultiprocess#263: ci: bump timeout factor to 40
REVERT: 09f10e5a59 ci: bump timeout factor to 40
REVERT: db8f76ad29 Merge bitcoin-core/libmultiprocess#253: ci: run some Bitcoin Core CI jobs
REVERT: 55a9b557b1 ci: set Bitcoin Core CI test repetition
REVERT: fb0fc84d55 ci: add TSan job with instrumented libc++
REVERT: 0f29c38725 ci: add Bitcoin Core IPC tests (ASan + macOS)
REVERT: 3f64320315 Merge bitcoin-core/libmultiprocess#262: ci: enable clang-tidy in macOS job, use nullptr
REVERT: cd9f8bdc9f Merge bitcoin-core/libmultiprocess#258: log: add socket connected info message and demote destroy logs to debug
REVERT: b5d6258a42 Merge bitcoin-core/libmultiprocess#255: fix: use unsigned char cast and sizeof in LogEscape escape sequence
REVERT: d94688e2c3 Merge bitcoin-core/libmultiprocess#251: Improved CustomBuildField for std::optional in IPC/libmultiprocess
REVERT: a9499fad75 mp: use nullptr with pthread_threadid_np
REVERT: f499e37850 ci: enable clang-tidy in macOS job
REVERT: 98f1352159 log: add socket connected info message and demote destroy logs to debug
REVERT: 554a481ea7 fix: use unsigned char cast and sizeof in LogEscape escape sequence
REVERT: 1977b9f3f6 Use std::forward in CustomBuildField for std::optional to allow move semantics, resolves FIXME
REVERT: 22bec918c9 Merge bitcoin-core/libmultiprocess#247: type-map: Work around LLVM 22 "out of bounds index" error
REVERT: 8a5e3ae6ed Merge bitcoin-core/libmultiprocess#242: proxy-types: add CustomHasField hook to map Cap'n Proto values to null C++ values
REVERT: e8d3524691 Merge bitcoin-core/libmultiprocess#246: doc: Bump version 8 > 9
REVERT: 97d877053b proxy-types: add CustomHasField hook for nullable decode paths
REVERT: 8c2f10252c refactor: add missing includes to mp/type-data.h
REVERT: b1638aceb4 doc: Bump version 8 > 9
REVERT: f61af48721 type-map: Work around LLVM 22 "out of bounds index" error
REVERT: 1868a84451 Merge bitcoin-core/libmultiprocess#245: type-context.h: Extent cancel_mutex lock to prevent theoretical race
REVERT: fd4a90d310 Merge bitcoin-core/libmultiprocess#244: ci: suppress two tidy lint issues
REVERT: 16dfc36864 ci: avoid bugprone-unused-return-value lint in test
REVERT: dacd5eda46 ci: suppress nontrivial-threadlocal lint in proxy.cpp
REVERT: ef96a5b2be doc: Comment cleanups after bitcoin#240
REVERT: e0f1cd7621 type-context.h: Extent cancel_mutex lock to prevent theoretical race
REVERT: 290702c74c Merge bitcoin-core/libmultiprocess#240: Avoid errors from asynchronous (non-c++) clients
REVERT: 3a69d4755a Merge bitcoin-core/libmultiprocess#241: doc: Bump version number v7 -> v8
REVERT: 0174450ca2 Prevent crash on unclean disconnect if abandoned IPC call returns interface pointer
REVERT: ddb5f74196 Allow simultaneous calls on same Context.thread
REVERT: c4762c7b51 refactor: Add ProxyServer<Thread>::post() method
REVERT: 0ade1b40ac doc: Bump version number
REVERT: 1fc65008f7 Merge bitcoin-core/libmultiprocess#237: Made SpawnProcess() behavior safe post fork()
REVERT: 5205a87cd9 test: check SpawnProcess post-fork safety
REVERT: 69652f0edf Precompute argv before fork in SpawnProcess
REVERT: 30a8681de6 SpawnProcess: avoid fd leak on close failure
REVERT: d0fc1081d0 Merge bitcoin-core/libmultiprocess#196: ci: Add NetBSD job
REVERT: 7b171f45bf Merge bitcoin-core/libmultiprocess#234: doc: Fix typos and grammar in documentation and comments
REVERT: 861da39cae ci: Add NetBSD job
REVERT: 458745e394 Fix various typos, spelling mistakes, and grammatical errors in design.md and source code comments.
REVERT: 585decc856 Merge bitcoin-core/libmultiprocess#236: ci: Install binary package `capnproto` on OpenBSD instead of building it
REVERT: 14e926a3ff refactor: extract MakeArgv helper
REVERT: 1ee909393f ci: Install binary package `capnproto` on OpenBSD instead of building it
REVERT: 470fc518d4 Merge bitcoin-core/libmultiprocess#230: cmake: add ONLY_CAPNP target_capnp_sources option
REVERT: 2d8886f26c Merge bitcoin-core/libmultiprocess#228: Add versions.md and version.h files describing version branches and tags
REVERT: c1838be565 Merge bitcoin-core/libmultiprocess#225: Improve and document act support
REVERT: a173f1704c Merge bitcoin-core/libmultiprocess#223: ci: Replace nix-shell with equivalent nix develop command
REVERT: 625eaca42f Merge bitcoin-core/libmultiprocess#229: Design Documentation Update
REVERT: cc234be73a Design doc update
REVERT: 81c652687b cmake: add ONLY_CAPNP target_capnp_sources option
REVERT: 6e01d2d766 Add versions.md and version.h files describing version branches and tags
REVERT: a4f9296964 Merge bitcoin-core/libmultiprocess#224: doc: fix typos
REVERT: f4344ae87d Merge bitcoin-core/libmultiprocess#222: test, ci: Fix threadsanitizer errors in mptest
REVERT: 4e3f8fa0d2 doc: add instructions for using act
REVERT: 81712ff6bb ci: disable KVM and sandbox inside act containers
REVERT: 1434642b38 doc: fix typos
REVERT: 73d22ba2e9 test: Fix tsan race in thread busy test
REVERT: b74e1bba01 ci: Use tsan-instrumented cap'n proto in sanitizers job
REVERT: c332774409 test: Fix failing exception check in new thread busy test
REVERT: ca3c05d567 test: Use KJ_LOG instead of std::cout for logging
REVERT: 7eb1da120a ci: Use tsan-instrumented libcxx in sanitizers job
REVERT: 18a2237a8e ci: Replace nix-shell with equivalent nix develop command
REVERT: ec86e4336e Merge bitcoin-core/libmultiprocess#220: Add log levels and advertise them to users via logging callback
REVERT: 515ce93ad3 Logging: Pass LogData struct to logging callback
REVERT: 213574ccc4 Logging: reclassify remaining log messages
REVERT: e4de0412b4 Logging: Break out expensive log messages and classify them as Trace
REVERT: 408874a78f Logging: Use new logging macros
REVERT: 67b092d835 Logging: Disable logging if messsage level is less than the requested level
REVERT: d0a1ba7ebf Logging: add log levels to mirror Core's
REVERT: 463a8296d1 Logging: Disable moving or copying Logger
REVERT: 83a2e10c0b Logging: Add an EventLoop constructor to allow for user-specified log options
REVERT: 58cf47a7fc Merge bitcoin-core/libmultiprocess#221: test default PassField impl handles output parameters
REVERT: db03a663f5 Merge bitcoin-core/libmultiprocess#214: Fix crash on simultaneous IPC calls using the same thread
REVERT: afcc40b0f1 Merge bitcoin-core/libmultiprocess#213: util+doc: Clearer errors when attempting to run examples + polished docs
REVERT: 6db6696283 test In|Out parameter
REVERT: 29cf2ada75 test default PassField impl handles output parameters
REVERT: 1238170f68 test: simultaneous IPC calls using same thread
REVERT: eb069ab75d Fix crash on simultaneous IPC calls using the same thread
REVERT: ec03a9639a doc: Precision and typos
REVERT: 2b43481935 doc: Where possible, remove links to ryanofsky/bitcoin/
REVERT: 286fe469c9 util: Add helpful error message when failing to execute file
REVERT: 47d79db8a5 Merge bitcoin-core/libmultiprocess#201: bug: fix mptest hang, ProxyClient<Thread> deadlock in disconnect handler
REVERT: f15ae9c9b9 Merge bitcoin-core/libmultiprocess#211: Add .gitignore
REVERT: 4a269b21b8 bug: fix ProxyClient<Thread> deadlock if disconnected as IPC call is returning
REVERT: 85df96482c Use try_emplace in SetThread instead of threads.find
REVERT: ca9b380ea9 Use std::optional in ConnThreads to allow shortening locks
REVERT: 9b07991135 doc: describe ThreadContext struct and synchronization requirements
REVERT: d60db601ed proxy-io.h: add Waiter::m_mutex thread safety annotations
REVERT: 4e365b019a ci: Use -Wthread-safety not -Wthread-safety-analysis
REVERT: 15d7bafbb0 Add .gitignore
REVERT: fe1cd8c761 Merge bitcoin-core/libmultiprocess#208: ci: Test minimum cmake version in olddeps job
REVERT: b713a0b7bf Merge bitcoin-core/libmultiprocess#207: ci: output CMake version in CI script
REVERT: 0f580397c9 ci: Test minimum cmake version in olddeps job
REVERT: d603dcc0ee ci: output CMake version in CI script
REVERT: 13424cf2ec Merge bitcoin-core/libmultiprocess#205: cmake: check for Cap'n Proto / Clang / C++20 incompatibility
REVERT: 72dce11864 Merge bitcoin-core/libmultiprocess#200: event loop: add LogOptions struct and reduce the log size
REVERT: 85003409f9 eventloop: add `LogOptions` struct
REVERT: 657d80622f cmake: capnproto pkg missing helpful error
REVERT: d314057775 cmake: check for Cap'n Proto / Clang / C++20 incompatibility
REVERT: 878e84dc30 Merge bitcoin-core/libmultiprocess#203: cmake: search capnproto in package mode only
REVERT: 1a85da5873 Merge bitcoin-core/libmultiprocess#202: doc: correct the build instructions for the example
REVERT: df01873e1e Merge bitcoin-core/libmultiprocess#197: ci: Add freebsd and macos build
REVERT: 3bee07ab33 cmake: search capnproto in package mode only
REVERT: b6d3dc4419 doc: correct the build instructions for example
REVERT: fa1ac30000 ci: Add macos and freebsd task
REVERT: 1b8d4a6f1e Merge bitcoin-core/libmultiprocess#194: mpgen: Work around c++20 / capnproto 0.8 incompatibility
REVERT: f1fad396bf Merge bitcoin-core/libmultiprocess#195: ci: Add openbsd
REVERT: eed42f210d ci: Bump all tasks to actions/checkout@v5
REVERT: 486a510bbe ci: Remove ancient and problematic -lstdc++fs in mpexample
REVERT: dd40897efe Add missing thread include
REVERT: 98414e7d28 ci: Add openbsd
REVERT: dc3ba22046 cmake, doc: Add check for CVE-2022-46149
REVERT: cb170d4913 Merge bitcoin-core/libmultiprocess#193: build: require CapnProto 0.7.0 or better
REVERT: 8ceeaa6ae4 ci: Add olddeps job to test old dependencies versions
REVERT: c4cb758ecc mpgen: Work around c++20 / capnproto 0.8 incompatibility
REVERT: 30930dff7b build: require CapnProto 0.7.0 or better
REVERT: b4120d34ba Merge bitcoin-core/libmultiprocess#192: doc: fix typos
REVERT: 6ecbdcd35a doc: fix typos
REVERT: a11e6905c2 Merge bitcoin-core/libmultiprocess#186: Fix mptest failures in bitcoin CI
REVERT: 6f340a583f doc: fix DrahtBot LLM Linter error
REVERT: c6f7fdf173 type-context: revert client disconnect workaround
REVERT: e09143d2ea proxy-types: fix UndefinedBehaviorSanitizer: null-pointer-use
REVERT: 84b292fcc4 mptest: fix MemorySanitizer: use-of-uninitialized-value
REVERT: fe4a188803 proxy-io: fix race conditions in disconnect callback code
REVERT: d8011c8360 proxy-io: fix race conditions in ProxyClientBase cleanup handler
REVERT: 97e82ce19c doc: Add note about Waiter::m_mutex and interaction with the EventLoop::m_mutex
REVERT: 81d58f5580 refactor: Rename ProxyClient cleanup_it variable
REVERT: 07230f259f refactor: rename ProxyClient<Thread>::m_cleanup_it
REVERT: c0efaa5e8c Merge bitcoin-core/libmultiprocess#187: ci: have bash scripts explicitly opt out of locale dependence.
REVERT: 0d986ff144 mptest: fix race condition in TestSetup constructor
REVERT: d2f6aa2e84 ci: add thread sanitizer job
REVERT: 3a6db38e56 ci: rename configs to .bash
REVERT: 401e0ce1d9 ci: add copyright to bash scripts
REVERT: e956467ae4 ci: export LC_ALL
REVERT: 8954cc0377 Merge bitcoin-core/libmultiprocess#184: Add CI jobs and fix clang-tidy and iwyu errors
REVERT: 757e13a755 ci: add gnu32 cross-compiled 32-bit build
REVERT: 15bf349000 doc: fix typo found by DrahtBot
REVERT: 1a598d5905 clang-tidy: drop 'bitcoin-*' check
REVERT: cbb1e43fdc ci: test libc++ instead of libstdc++ in one job
REVERT: 76313450c2 type-context: disable clang-tidy UndefinedBinaryOperatorResult error
REVERT: 4896e7fe51 proxy-types: fix clang-tidy EnumCastOutOfRange error
REVERT: 060a739269 proxy-types: fix clang-tidy StackAddressEscape error
REVERT: 977d721020 ci: add github actions jobs testing gcc, clang-20, clang-tidy, and iwyu
REVERT: 0d5f1faae5 iwyu: fix add/remove include errors
REVERT: 753d2b10cc util: fix clang-tidy modernize-use-equals-default error
REVERT: ae4f1dc2bb type-number: fix clang-tidy modernize-use-nullptr error
REVERT: 07a741bf69 proxy-types: fix clang-tidy bugprone-use-after-move error
REVERT: 3673114bc9 proxy-types: fix clang-tidy bugprone-use-after-move error
REVERT: 422923f384 proxy-types: fix clang-tidy bugprone-use-after-move error
REVERT: c6784c6ade mpgen: disable clang-tidy misc-no-recursion error
REVERT: c5498aa11b tidy: copy clang-tidy file from bitcoin core
REVERT: 258a617c1e Merge bitcoin-core/libmultiprocess#160: refactor: EventLoop locking cleanups + client disconnect exception
REVERT: 84cf56a0b5 test: Test disconnects during IPC calls
REVERT: 949573da84 Prevent IPC server crash if disconnected during IPC call
REVERT: 0198397580 Merge bitcoin-core/libmultiprocess#179: scripted-diff: Remove copyright year (ranges)
REVERT: ea38392960 Prevent EventLoop async cleanup thread early exit during shutdown
REVERT: 616d9a75d2 doc: Document ProxyClientBase destroy_connection option
REVERT: 56fff76f94 Improve IPC client disconnected exceptions
REVERT: 9b8ed3dc5f refactor: Add clang thread safety annotations to EventLoop
REVERT: 52256e730f refactor: Remove DestructorCatcher and AsyncCallable
REVERT: f24894794a refactor: Drop addClient/removeClient methods
REVERT: 2b830e558e refactor: Use EventLoopRef instead of addClient/removeClient
REVERT: 315ff537fb refactor: Add ProxyContext EventLoop* member
REVERT: 9aaeec3678 proxy-io.h: Add EventLoopRef RAII class handle addClient/removeClient refcounting
REVERT: f58c8d8ba2 proxy-io.h: Add more detailed EventLoop comment
REVERT: 5108445e5d test: Add test coverage for client & server disconnections
REVERT: 59030c68cb Merge bitcoin-core/libmultiprocess#181: type-function.h: Fix CustomBuildField overload
REVERT: 688140b1df test: Add coverage for type-function.h
REVERT: 8b96229da5 type-function.h: Fix CustomBuildField overload
REVERT: fa2ff9a668 scripted-diff: Remove copyright year (ranges)
REVERT: 27c7e8e5a5 Merge bitcoin-core/libmultiprocess#172: refactor: fix warnings from clang-tidy-20 and bitcoin-tidy
REVERT: 2fe87d016b Merge bitcoin-core/libmultiprocess#173: doc: Fix error string typo
REVERT: 57a65b8546 clang-tidy: Suppress bitcoin-nontrivial-threadlocal error
REVERT: 0d8012f656 Merge bitcoin-core/libmultiprocess#165: clang-tidy: fix warnings introduced in version 19
REVERT: 3a96cdc18f clang-tidy: Fix bugprone-move-forwarding-reference error
REVERT: c1e8c1a028 clang-tidy: Fix bugprone-move-forwarding-reference errors
REVERT: aa19285303 use ranges transform
REVERT: a78137ca73 make member function const
REVERT: ca3226ec8a replace custom tuple unpacking code with `std::apply`
REVERT: 949fe85fc9 replace SFINAE trick with `if constexpr`
REVERT: 44ee4b40b8 doc: Fix error string typo
REVERT: 35944ffd23 Merge bitcoin-core/libmultiprocess#168: Switch `MP_INCLUDE_DIR` to global property
REVERT: a77c8e18eb Switch `MP_INCLUDE_DIR` to global property
REVERT: f35df6bdc5 Merge bitcoin-core/libmultiprocess#166: doc: rename from chaincodelabs to bitcoin-core
REVERT: 2e119973ce doc: rename from chaincodelabs to bitcoin-core
REVERT: 1954f7f656 Merge bitcoin-core/libmultiprocess#164: Bump minimum required cmake to 3.12
REVERT: 729ff16d55 Bump minimum required cmake to 3.12
REVERT: 011fc53aea Merge bitcoin-core/libmultiprocess#161: cmake: Avoid including CTest if not top level project
REVERT: 26b9f3dda4 Merge bitcoin-core/libmultiprocess#159: bugfix: Do not lock EventLoop::mutex after EventLoop is done
REVERT: a7f0669320 cmake: Avoid including CTest if not top level project
REVERT: 48d01bcca7 bugfix: Do not lock EventLoop::mutex after EventLoop is done
REVERT: 408990787f Merge bitcoin-core/libmultiprocess#157: refactor: Avoid using std::format
REVERT: eca8fd3eee refactor: Avoid using std::format
REVERT: 9ba88dc2c7 Merge bitcoin-core/libmultiprocess#156: refactor: Remove locale-dependent function calls
REVERT: 91193005a9 Merge bitcoin-core/libmultiprocess#155: scripted-diff: s/Libmultiprocess_EXTERNAL_MPGEN/MPGEN_EXECUTABLE/g
REVERT: c8351c5f0b refactor: Remove locale-dependent function calls
REVERT: 250c2ea54d scripted-diff: s/Libmultiprocess_EXTERNAL_MPGEN/MPGEN_EXECUTABLE/g
REVERT: 9558ceb0d4 Merge bitcoin-core/libmultiprocess#152: refactor: Fix compiler and clang-tidy warnings
REVERT: c6a61d8b9e Merge bitcoin-core/libmultiprocess#149: Avoid `-Wundef` compiler warnings
REVERT: 0b8b7f92ca refactor: Fix `-Wsign-compare` compiler warning
REVERT: a02c0794fd clang-tidy: Suppress `performance-enum-size` check warning
REVERT: 593807ab5b clang-tidy: Fix `readability-container-size-empty` check
REVERT: 68c1c6c51a clang-tidy: Fix `readability-avoid-return-with-void-value` check
REVERT: 4abaa98429 clang-tidy: Fix `readability-avoid-nested-conditional-operator` check
REVERT: 01ef094b4c clang-tidy: Fix `performance-unnecessary-value-param` check
REVERT: c665a43f9c clang-tidy: Fix `misc-use-internal-linkage` check
REVERT: 15c77e9722 clang-tidy: Fix `misc-include-cleaner` check
REVERT: 848c902dd0 clang-tidy: Fix `misc-const-correctness` check
REVERT: 4a2508c499 clang-tidy: Fix `modernize-type-traits` check
REVERT: 8170d3d421 clang-tidy: Suppress `bugprone-empty-catch` check warning
REVERT: c068596ac3 clang-tidy: Fix `bugprone-crtp-constructor-accessibility` check
REVERT: 00036c0648 clang-tidy: Disable `performance-avoid-endl` check
REVERT: 359a6157af clang-tidy: Disable `misc-use-anonymous-namespace` check
REVERT: c978878a3c Merge bitcoin-core/libmultiprocess#145: CTest: Module must be included at the top level
REVERT: 63ac092ddd CTest: Module must be included at the top level
REVERT: d450fbf63e Avoid `-Wundef` compiler warnings
REVERT: 477405eda3 Merge bitcoin-core/libmultiprocess#148: util: fix -Wpessimizing-move warning
REVERT: 3bce9d03d1 util: fix -Wpessimizing-move warning
REVERT: f09c50118f Merge bitcoin-core/libmultiprocess#147: cmake: EXTERNAL_MPGEN cleanups
REVERT: 3d83c7aef1 Merge bitcoin-core/libmultiprocess#146: cmake: Suppress compiler warnings from capnproto headers
REVERT: 21b92b69c9 cmake: EXTERNAL_MPGEN cleanups
REVERT: 2fdd920b1e Merge bitcoin-core/libmultiprocess#143: cleanup: initialize vars in the EventLoop constructor in the correct order
REVERT: 0c2ac4d772 Merge bitcoin-core/libmultiprocess#142: build: add option for external mpgen binary
REVERT: f52d08c7f0 cleanup: initialize vars in the EventLoop constructor in the correct order
REVERT: 75cf04a6ed build: add option for external mpgen binary
REVERT: 72326b5d1e cmake: Simplify capnp include handling
REVERT: 1e06ff07cd Merge bitcoin-core/libmultiprocess#140: build: don't clobber user/superproject c++ version
REVERT: 65c7048251 cmake: Suppress compiler warnings from capnproto headers
REVERT: df2153551e build: don't clobber user/superproject c++ version
REVERT: 07c917f7ca Merge bitcoin-core/libmultiprocess#137: doc: Fix broken markdown links
REVERT: e15816a6c3 doc: Fix broken markdown links
REVERT: e89b2c6ac2 Merge bitcoin-core/libmultiprocess#136: cmake: Support being included with add_subdirectory
REVERT: 3dea1d555a Merge bitcoin-core/libmultiprocess#135: refactor: proxy-types.h API cleanup
REVERT: 6adbb1d6eb cmake: Support being included with add_subdirectory
REVERT: 10bb7e4734 Merge bitcoin-core/libmultiprocess#94: c++ 20 cleanups
REVERT: 7d59b8d14c move: add mp/type-data.h
REVERT: 1103f86cd9 cmake: Define and use MP_INCLUDE_DIR variable
REVERT: 798f4b5e35 moveonly: add mp/type-chrono.h
REVERT: a595a0b228 moveonly: add mp/type-threadmap.h
REVERT: e834ebd219 moveonly: add mp/type-decay.h
REVERT: 5ee6cd4118 moveonly: add mp/type-exception.h
REVERT: 394651237b moveonly: add mp/type-void.h
REVERT: 8969d5a008 moveonly: add mp/type-message.h
REVERT: 11b418f438 moveonly: add mp/type-struct.h
REVERT: 5df55a3666 moveonly: add mp/type-function.h
REVERT: 0d2f939214 moveonly: add mp/type-interface.h
REVERT: 5417716ad8 moveonly: add mp/type-char.h
REVERT: 83c444dc9d moveonly: add mp/type-string.h
REVERT: df1375bd68 moveonly: add mp/type-number.h
REVERT: 6d831ebb1d moveonly: add mp/type-tuple.h
REVERT: c999100289 moveonly: add mp/type-pair.h
REVERT: 079277f2ba moveonly: add mp/type-map.h
REVERT: 6a68472bb3 moveonly: add mp/type-set.h
REVERT: c6246c9198 moveonly: add mp/type-vector.h
REVERT: 619d2c7405 moveonly: add mp/type-pointer.h
REVERT: 3cb9d9fd5b moveonly: add mp/type-optional.h
REVERT: b32e2b096c moveonly: add mp/type-context.h
REVERT: f18a1ccd20 refactor: Rename ReadDestValue to ReadDestUpdate
REVERT: 3dc1d42a7a Merge bitcoin-core/libmultiprocess#133: Fix debian "libatomic not found" error in downstream builds
REVERT: eb27f5918f Merge bitcoin-core/libmultiprocess#131: doc: fix startAsyncThread comment
REVERT: caf01fa469 Merge bitcoin-core/libmultiprocess#130: refactor: Add CleanupRun function to dedup clean list code
REVERT: 72f6669b50 Merge bitcoin-core/libmultiprocess#129: Fix "disconnected: write(m_post_fd, &buffer, 1): Broken pipe" EventLoop shutdown races.
REVERT: 67afc23069 Fix debian "libatomic not found" error in downstream builds
REVERT: 0e4f88d3f9 Fix "disconnected: write(m_post_fd, &buffer, 1): Broken pipe" EventLoop shutdown races.
REVERT: 063ff18210 fix startAsyncThread comment
REVERT: 3b2617b3e5 Merge bitcoin-core/libmultiprocess#127: ProxyClientBase: avoid static_cast to partially destructed object
REVERT: 63a39d4c9b ProxyClientBase: avoid static_cast to partially destructed object
REVERT: 700085f9a8 refactor: Add CleanupRun function to dedup clean list code
REVERT: 621a04a70f Merge bitcoin-core/libmultiprocess#120: proxy-types.h: add static_assert to detect int/enum size mismatch
REVERT: 110349f626 test: Add coverage for enum/int conversions
REVERT: 350067f431 Merge bitcoin-core/libmultiprocess#121: ProxyClientBase: avoid static_cast to partially constructed object
REVERT: 5b81192847 ProxyClientBase: avoid static_cast to partially constructed object
REVERT: bbc80abc20 proxy-types.h: add static_assert to detect when an int fields is too small to hold an enum value
REVERT: abe254b973 Merge bitcoin-core/libmultiprocess#119: cmake: avoid libatomic not found error on debian
REVERT: 245581d3e3 Merge bitcoin-core/libmultiprocess#118: shutdown bugfix: Prevent segfault in server if connection is broken during long function call
REVERT: 196e6fcdbc bugfix: prevent null pointer dereference in server if client disconnects during method call
REVERT: 296c380a4b cmake: avoid libatomic not found error on debian
REVERT: 9d11042772 bugfix: prevent double delete segfault in server if client disconnects during method call
REVERT: 181837b391 Merge bitcoin-core/libmultiprocess#116: shutdown bugfix: destroy RPC system before running cleanup callbacks
REVERT: 2350843a31 shutdown bugfix: destroy RPC system before running cleanup callbacks
REVERT: a4ac4241e0 Merge bitcoin-core/libmultiprocess#113: Add missing include to util.h
REVERT: 6929c40913 Add missing include to util.h
REVERT: f5a4957d26 Merge bitcoin-core/libmultiprocess#111: doc: Add internal design section
REVERT: 1fa2ca7cd8 doc: Add internal design section
REVERT: 015e95f7eb Merge bitcoin-core/libmultiprocess#110: cmake: add target_capnp_sources headers target
REVERT: 66e12f1fae cmake: add target_capnp_sources headers target
REVERT: f67cae8909 Merge bitcoin-core/libmultiprocess#109: example: Add missing thread.join() call so example can exit cleanly
REVERT: 70b2d8794f example: Add missing thread.join() call so example can exit cleanly
REVERT: 8bb6eab71b Merge bitcoin-core/libmultiprocess#108: doc: Add comments for socket descriptor handling when forking
REVERT: 17a2399fe1 Merge bitcoin-core/libmultiprocess#107: example: Remove manual client adding
REVERT: b56bf218c7 doc: Add comments for socket descriptor handling when forking
REVERT: 34998101a3 example: Remove manual client adding
REVERT: c1b4ab4eb8 Merge bitcoin-core/libmultiprocess#106: Bugfix: Clean up ThreadContext pointers when Connection is destroyed
REVERT: 8ba0d03b44 Bugfix: Clean up ThreadContext pointers when Connection is destroyed
REVERT: a9e16da55e Merge bitcoin-core/libmultiprocess#105: types: Add Custom{Build,Read,Pass}Message hooks
REVERT: ca2cfedd2b types: Add Custom{Build,Read,Pass}Message hooks
REVERT: 6aca5f389b Merge bitcoin-core/libmultiprocess#104: Fix $Proxy.wrap mapping for empty structs with no fields
REVERT: e4540729c9 Merge bitcoin-core/libmultiprocess#103: cmake: Fix package configuration file
REVERT: 90f8b37a3b Fix $Proxy.wrap mapping for empty structs with no fields
REVERT: c373a94d5b cmake: Fix package configuration file
REVERT: 8b8a4766ce Merge bitcoin-core/libmultiprocess#102: doc: Document shutdown sequences better
REVERT: 2c66dd5995 doc: Document shutdown sequences better
REVERT: 6cbe56ef3b refactor, moveonly: order lambda move captures first
REVERT: 8da0524628 Merge bitcoin-core/libmultiprocess#101: connection: run async cleanups in LIFO not FIFO order
REVERT: 1f76880dbf util: Get rid of unused Discard struct
REVERT: c92e90ce08 proxy-types Drop JoinPromises function
REVERT: 53ee9faf84 Merge bitcoin-core/libmultiprocess#100: doc: Add various code comments and documentation
REVERT: e45c482c40 Merge bitcoin-core/libmultiprocess#99: proxy-types: Fix missing space in server destroy log print
REVERT: 6825523c6e connection: run async cleanups in LIFO not FIFO order
REVERT: 537c645652 doc: Improve ProxyServerCustom class documentation
REVERT: 0c70a0f89e proxy-types: Fix missing space in server destroy log print
REVERT: e29f74e8ff Merge bitcoin-core/libmultiprocess#98: cmake: Combine installed packages
REVERT: d4d9f93175 doc: Document FunctionTraits/ProxyMethodTraits classes
REVERT: 78c7dd0be5 doc: Document ProxyClient construct/destroy methods
REVERT: e99c0b7564 doc: Document clientInvoke/serverInvoke functions
REVERT: 2098ae1b18 doc: Add comment on serverInvoke ReplaceVoid usage
REVERT: a1dfb0bab4 doc: Add comments to mp.Context PassField function on updating g_thread_context
REVERT: e49a925a40 doc: Add comments to mp.Context PassField function on mp.Context.thread lookup
REVERT: dc9b4e6a99 cmake: Combine installed packages
REVERT: 2ed1e9aedb cmake: CMakeLists.txt cleanup
REVERT: 3f8483b61a Merge bitcoin-core/libmultiprocess#97: cmake: rename new packages and module introduced in #95 and #96
REVERT: c6a1d7fb6b cmake: rename new packages and module introduced in #95 and #96
REVERT: 003eb04d6d Merge bitcoin-core/libmultiprocess#96: cmake: Introduce packages
REVERT: 19dea85cf2 Merge bitcoin-core/libmultiprocess#95: cmake: Introduce `LibmultiprocessMacros` module
REVERT: 4e70ad4719 cmake, refactor: Rename target export files
REVERT: 694b6b13e9 cmake: Configure `LibmultiprocessGen` package
REVERT: 3b20e35ab8 cmake: Configure `Libmultiprocess` package
REVERT: 66643d8eaa cmake, refactor: Use `target_capnp_sources` for examples
REVERT: bd2dfe27b0 cmake, refactor: Use `target_capnp_sources` for `mptest` target
REVERT: d9ec22f81b cmake: Add `LibmultiprocessMacros` module
REVERT: 8da797c5f1 Merge bitcoin-core/libmultiprocess#93: Fix support for vector<bool> serialization with libc++
REVERT: 10fc3eda9c Fix support for vector<bool> serialization with libc++
REVERT: 7d1fee06d6 Merge bitcoin-core/libmultiprocess#91: util: Drop Bind, BindTuple, ComposeFn, GetFn, and ThrowFn helpers
REVERT: 65260d1851 util: Drop Bind, BindTuple, ComposeFn, GetFn, and ThrowFn helpers
REVERT: 2cbbd09d8b Merge bitcoin-core/libmultiprocess#90: pkgconfig: Use @CMAKE_INSTALL_LIBDIR@ variable
REVERT: 02711958d9 Merge bitcoin-core/libmultiprocess#89: pkgconfig: Drop -std=c++17 compile flag
REVERT: 0f9605b026 pkgconfig: Use @CMAKE_INSTALL_LIBDIR@ variable
REVERT: 590d1e737c pkgconfig: Drop -std=c++17 compile flag
REVERT: 414542f81e Merge bitcoin-core/libmultiprocess#88: Fix current deprecation warnings as of capnproto-1.0.1
REVERT: 962e681356 mpgen: Avoid deprecated SchemaParser::parseDiskFile call
REVERT: e8e89dfd37 Remove deprecated kj::mvCapture calls to avoid warnings
REVERT: 61d5a0e661 Merge bitcoin-core/libmultiprocess#86: Add support for vector<bool> serialization
REVERT: 1c6fb04ddd Add support for vector<bool> serialization
REVERT: aea56f0e2a Merge bitcoin-core/libmultiprocess#85: Remove naming requirement for std::pair/std::tuple
REVERT: 3df497456b Remove naming requirement for std::pair/std::tuple
REVERT: fc28a48f01 Merge #83: Introduce `clang-tidy` and optimize code
REVERT: 594466ae97 clang-tidy: Fix `readability-make-member-function-const` check
REVERT: 037fec47c8 clang-tidy: Fix `performance-unnecessary-value-param` check
REVERT: 463bead1f3 clang-tidy: Fix `performance-inefficient-vector-operation` check
REVERT: a435b24e64 clang-tidy: Fix `performance-faster-string-find` check
REVERT: ae416f903f clang-tidy: Fix `modernize-use-nullptr` check
REVERT: 9f86c9a0a8 clang-tidy: Fix `modernize-use-equals-default` check
REVERT: 18b52c1663 clang-tidy: Fix `modernize-use-emplace` check
REVERT: 1a33c35a3b clang-tidy: Fix `modernize-return-braced-init-list` check
REVERT: 8dd83bbd91 clang-tidy: Suppress `bugprone-suspicious-semicolon` check warning
REVERT: 5e787bfbd0 Add option to run `clang-tidy` with compiler
REVERT: 74e25d2cd4 Merge #84: Avoid passing some function arguments by value
REVERT: 8ef94d2e86 Avoid passing some function arguments by value
REVERT: 917877afa8 Merge #79: Install Exports for custom `install-{lib,bin}` targets
REVERT: 2dda7536b5 Install Exports for custom `install-{lib,bin}` targets
REVERT: 54bd57fb3b Use `GNUInstallDirs` module
REVERT: 1af83d1523 Merge #81: Add ReadDestTemp function to make it easier to call ReadField with less boilerplate
REVERT: e66e6e82f6 Merge #82: build: Fix missing Cap'n Proto include directories
REVERT: c75362392f build: Fix missing Cap'n Proto include directories
REVERT: 70d108bc60 Add ReadDestTemp function to make it easier to call ReadField with less boilerplate
REVERT: 7441069261 Merge #80: doc: Fix mpgen usage string
REVERT: fcad5fbe53 doc: Fix mpgen usage string
REVERT: ddd2cee627 Merge #78: refactor: Do not shadow `InvokeContext::connection` member
REVERT: f999694daa refactor: Do not shadow `InvokeContext::connection` member
REVERT: 4992b52754 Merge #74: Add `install-lib` and `install-bin` build targets
REVERT: fa130db398 Add `install-bin` target
REVERT: c4d26d2ddb Add `install-lib` target
REVERT: bc3d166d37 Install `proxy.capnp` with `mpgen` target
REVERT: f85fefff28 Merge #73: Drop unneeded include directory
REVERT: 80dc922e4c Merge #72: Make `mpgen` target independent from `multiprocess` one
REVERT: d321ef89e7 Merge #71: Use defined `CXX_STANDARD` for environment introspection
REVERT: 331b5a6e49 Merge #70: Fix check for `pthread_threadid_np`
REVERT: d36ebb9ace Drop unneeded include directory
REVERT: 665d1fdc67 Make `mpgen` target independent from `multiprocess` one
REVERT: 2eff5da83c Use defined `CXX_STANDARD` for environment introspection
REVERT: 373d0d7823 Fix check for `pthread_threadid_np`
REVERT: c6849de823 Merge #69: Fix CMake minimum required version
REVERT: 6902bfd40e Fix CMake minimum required version
REVERT: 49dc279926 Merge bitcoin-core/libmultiprocess#66: Fix typos
REVERT: 9f4dac644a Fix typos
REVERT: 7d10f3b1e3 Merge bitcoin-core/libmultiprocess#65: Fix clang "unknown warning group" errors
REVERT: 680776fcc8 Fix clang "unknown warning group" errors
REVERT: bc6624a5d3 Merge bitcoin-core/libmultiprocess#64: cleanup: Remove AUTORET macro and clean up PassField overrides
REVERT: d2a9db9ebf Merge bitcoin-core/libmultiprocess#63: Fix mptest link error caused by missing kj-async dependency
REVERT: cf7ebfe68d Replace ThreadMap Passfield override with generic count(0) override
REVERT: 3f388cf064 Inline last AUTO_RETURN uses and remove macro
REVERT: 41db49c7bc Consolidate PassField function to remove AUTO_RETURN uses
REVERT: 1d005053b0 Replace output.init AUTO_RETURN uses with decltype(auto)
REVERT: ea1a77b98b Replace AUTO_RETURN uses with decltype(auto)
REVERT: 029d84fe77 Fix mptest link error caused by missing kj-async dependency
REVERT: 306c8b100d Merge bitcoin-core/libmultiprocess#62: Fix clang compiler warnings
REVERT: 1b638d67de Avoid delete-non-abstract-non-virtual-dtor warnings for mp::ProxyCallbackImpl
REVERT: 5738b8ae09 Avoid delete-non-abstract-non-virtual-dtor warnings
REVERT: 921e23e8d1 Disable clang suggest-override warnings for proxy clients
REVERT: 34ce921d2d Merge bitcoin-core/libmultiprocess#58: Fix std::move compiler warning
REVERT: 49004c8726 Merge bitcoin-core/libmultiprocess#57: doc/install.md: add cmake to brew install command
REVERT: e386cfad52 Fix std::move compiler warning
REVERT: 424d635ab1 doc/install.md: add cmake to brew install command
REVERT: 8abd3daf1c Merge #55: Add doc/ folder, split up readme and add more usage documentation
REVERT: 1a3dc8d263 Add documentation about interface definitions
REVERT: 5539208883 Split up README.md
REVERT: 805eb73e57 Merge #49: Add standalone example with 3 processes
REVERT: 4b45e14aad Add standalone example with 3 processes
REVERT: 17bfda9ece Merge #48: Move test/src/ files one level up
REVERT: b648f2a13d Merge #47: gen.cpp: Check local includes before install includes
REVERT: 8b5259c5b4 Move test/src/ files one level up
REVERT: c2f866fa8d Merge #45: Comments and LogEscape
REVERT: 1007bd7c2b gen.cpp: Check local includes before install includes
REVERT: 22afe27d1e util: fix LogEscape bug
REVERT: 89ababdd3c doc: add note on vats
REVERT: 6e36f0f53c doc: fix various typos
REVERT: b6e060af7b README: add kj explainer
REVERT: d576d975de Merge #43: Drop hardcoded #include lines in generated files
REVERT: 35d2091134 Merge #42: Support attaching custom cleanup functions to proxy client and server classes
REVERT: 2ccc479f86 Drop hardcoded #include lines in generated files
REVERT: ce8e8b654a Add ProxyTypeRegister typeid map
REVERT: fbdaaa75aa Add cleanup callbacks to ProxyContext
REVERT: 34e9b78ec1 refactor: Move connection field to ProxyContext struct
REVERT: 39ad0f5eae Generate ProxyType traits for interface types
REVERT: 1b4012cadd Merge #41: Avoid depending on argument default constructors
REVERT: 0e97be35f9 Avoid depending on argument default constructors
REVERT: 4dcd80741e Merge #40: Disable GCC suggest-override warnings for proxy clients
REVERT: 05f9817c36 Disable GCC suggest-override warnings for proxy clients
REVERT: 4c59977392 Merge #38: Add "extends" inherited method support
REVERT: de748be4cf Add "extends" inherited method support
REVERT: 9f5b835564 Merge #37: Add "make check" target to build and run tests
REVERT: 037835320b Add "make check" target to build and run tests
REVERT: 9d23fdd030 Merge #35: Fix README.md markdown
REVERT: 4d946aa6d2 Fix README.md markdown
REVERT: 5741d750a0 Merge #34: Add shared_ptr callback support
REVERT: 9ce0335b26 Add comment saying how to fix clientInvoke missing Proxy.Context assert
REVERT: 31b4f1be84 Add shared_ptr ownership and lifetime support
REVERT: 27f8a35ec0 Add saveCallback / callbackSaved test setup
REVERT: 5390a1b116 Add support for passing shared_ptrs without extending lifetime
REVERT: 39bbf74a08 Add CustomReadField priority param for more flexibility and consistency with CustomBuildField
REVERT: da489bef3f Fix bugs in PassField overload for callback objects passed by reference
REVERT: ab4568bbbd Add test coverage for thread map and callbacks
REVERT: 1d630f536d Merge #33: Fix empty exception values from bad ThrowFn declaration
REVERT: c3efcae099 Fix empty exception values from bad ThrowFn declaration
REVERT: 78f2f75d47 Merge #31: Unify ReadFieldNew / ReadFieldUpdate
REVERT: 112f364f01 Unify ReadFieldNew / ReadFieldUpdate
REVERT: c0e3a50455 Merge #25: Obliterate Boost
REVERT: 10b5c69dbc Obliterate Boost
REVERT: f4112b7966 Switch from C++14 to C++17
REVERT: f2ea4b91b4 Merge #30: proxy-io.h: fix missing assert.h include
REVERT: e2ad13aee2 Merge #29: Update make test command in readme
REVERT: fad36ab1a1 proxy-io.h: fix missing assert.h include
REVERT: 4d7864560e Merge #28: CMake workarounds for ubuntu capnproto 0.6.1 compatibility
REVERT: c8923eb01b Update make test command in readme
REVERT: 097bce268a Merge #24: Don't print a dash if thread name is not known
REVERT: a440eda4c8 Merge #23: Tell std::system_error() which function failed
REVERT: b09973bf7a CMake workarounds for ubuntu capnproto 0.6.1 compatibility
REVERT: 570db83ef4 Don't print a dash if thread name is not known
REVERT: d6dac63584 Tell std::system_error() which function failed
REVERT: 49a9637237 Merge #22: Handle fork(2) failures
REVERT: 50b6a7f8c2 Merge #21: Refactor ThreadName() to improve its portability
REVERT: 16ebae8225 Handle fork(2) failures
REVERT: f1857e3e91 Refactor ThreadName() to improve its portability
REVERT: fe76b287f7 Merge #19: Fix compilation of foo.h: include <string>
REVERT: 829741ce5f Merge #18: A followup to a616312: remove unnecessary call
REVERT: c92112a786 Fix compilation of foo.h: include <string>
REVERT: 3b5da8fb44 A followup to a616312: remove unnecessary call
REVERT: d3388da2c0 Merge #17: Avoid using boost::optional in PassField()
REVERT: a616312ed8 Avoid using boost::optional in PassField()
REVERT: abb3ae9ce9 Merge #16: Reduce boost usage
REVERT: fb73b81b98 Change EventLoop::m_task_set to not use boost
REVERT: 138ad6794a Change Field::(param and result) to not use boost
REVERT: 5724a2c58a Remove boost usage from GetAnnotation()
REVERT: cab9c51669 Remove unnecessary boost include
REVERT: e0319f428a Merge #15: Add ListenConnections function
REVERT: d519e18859 Add ListenConnections function
REVERT: d24cae648a Merge #14: Add simpler ServeStream function
REVERT: 710238c551 Add simpler ServeStream function
REVERT: 5f425473be Merge #13: Add mpgen.mk makefile rules
REVERT: b72ec472bb Add mpgen.mk makefile rules
REVERT: 86d5a45b8d Merge #12: Add Eventloop void* context pointer
REVERT: 2a2549cea3 Merge #11: Replace ProxyServer connection pointer with reference
REVERT: 4907c5dced Add Eventloop void* context pointer
REVERT: e7687dbed6 Replace ProxyServer connection pointer with reference
REVERT: bd8ee26336 Merge #10: Remove #include <syscall.h> to avoid mac os build error
REVERT: 4e452e9c1c Remove #include <syscall.h> to avoid mac os build error
REVERT: 9cd1a5a9c1 Merge #9: Invoke capnp compile from mpgen
REVERT: f89e4b32dc Invoke capnp compile from mpgen
REVERT: dee0711538 Merge #8: Add Connnect/Serve/Spawn/Wait functions
REVERT: 8125688f6c Merge #7: Add ProxyClientBase destroy_connection option
REVERT: f324c66615 Add Connnect/Serve/Spawn/Wait functions
REVERT: da73a6765f Merge #6: Explicitly request C++14 compiler
REVERT: c685fa9bed Add ProxyClientBase destroy_connection option
REVERT: 409fe97492 Explicitly request C++14 compiler
REVERT: 45785e7f19 Merge #3: Limit LogEscape string size
REVERT: 99bc4c523d Merge #2: Set mpgen rpath
REVERT: 724d2f7fe3 Limit LogEscape string size
REVERT: 4dcf39ffda Set mpgen rpath
REVERT: cf5afd6dd9 Merge #1: Fix libmultiprocess.pc install path
REVERT: 1bc076fbb9 Fix libmultiprocess.pc install path
REVERT: 06e1045bab libmultiprocess initial commit
git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 27ada4080964d26fed43d1c7329ba54b4c86199f1 parent 64b28c9 commit 0dd3f5c
40 files changed
Lines changed: 22 additions & 1898 deletions
File tree
- .github/workflows
- ci
- configs
- patches
- scripts
- doc
- example
- test
This file was deleted.
This file was deleted.
0 commit comments