Commit Graph

  • 3b7cc2a70f Don't count_down past 0 main andrew 2026-07-17 21:15:23 -04:00
  • a427278cc0 Read until EAGAIN andrew 2026-07-17 15:39:56 -04:00
  • 8056da856f Replace protocol_context void* with ProtocolHandle int64_t andrew 2026-07-17 14:25:40 -04:00
  • 0c0f154390 Rename append_message to send_response and update Connection construction docs andrew 2026-07-17 13:56:21 -04:00
  • addef07866 Prepare for more per io thread/epoll instance state andrew 2026-06-26 22:14:21 -04:00
  • 36a50dfdde Remove dead code andrew 2026-06-26 22:06:44 -04:00
  • a053b92911 Add basic Gitea Actions CI workflow (#6) weaselbotandandrew 2026-06-30 20:36:37 +00:00
  • 6219592620 Listen on public interface for test benchmark andrew 2026-06-26 19:03:15 -04:00
  • edfa71ce7c Add script to reproduce threading performance report results andrew 2026-06-26 14:28:05 -04:00
  • 5790603e31 Update threading performance report with reproduced numbers andrew 2026-06-26 13:16:48 -04:00
  • 273f288020 Merge pull request 'Support building on ARM with NEON histogram intrinsics' (#4) from weaselbot/weaseldb:weaselbot/issue-3 into main andrew 2026-06-26 16:13:00 +00:00
  • 14f8552906 Apply clang-format to ARM histogram code weaselbot 2026-06-26 11:12:10 -04:00
  • c71bdf13c4 Align AArch64 histogram parameter formatting with project style weaselbot 2026-06-26 11:09:08 -04:00
  • a0d64afd6f Fix ARM64 assembly size directive in cpu_work.cpp weaselbot 2026-06-26 11:08:20 -04:00
  • a377772e63 Use AArch64 NEON intrinsics for histogram bucket updates weaselbot 2026-06-26 11:08:03 -04:00
  • d7de96ef94 Support building on ARM by providing scalar histogram fallback weaselbot 2026-06-26 10:49:53 -04:00
  • f458c6b249 Make pipeline policy/topology configurable andrew 2025-11-06 15:55:27 -05:00
  • 9f8562e30f Fix histogram thread death bug andrew 2025-09-18 12:39:47 -04:00
  • cb66d65479 Add a bit more precision to docs, plus philosophy andrew 2025-09-16 00:44:00 -04:00
  • 4d015fa3dc Make recording metrics never block andrew 2025-09-15 23:34:30 -04:00
  • 0659319906 Prepare for try_lock optimization andrew 2025-09-15 23:04:54 -04:00
  • 6f421629aa Add comments to avoid blocking in sequence and resolve stages andrew 2025-09-15 22:51:41 -04:00
  • ba59a992dd Document per-connection locking strategy andrew 2025-09-15 22:33:52 -04:00
  • 0d76c73077 Only shut down write side for http andrew 2025-09-15 21:42:36 -04:00
  • 4ecbc07367 Fix flaky connection shutdown test andrew 2025-09-15 21:39:48 -04:00
  • 5e625197aa Fix url accumulation bug andrew 2025-09-15 21:25:43 -04:00
  • 5dda7353fa Add test for url accumulation bug andrew 2025-09-15 21:29:33 -04:00
  • 345d8e21b2 Use WaitIfUpstreamIdle andrew 2025-09-15 20:48:12 -04:00
  • 917066d8c0 Move thread local state into stack andrew 2025-09-15 20:33:45 -04:00
  • 5a88047b9f Two release threads andrew 2025-09-15 20:09:15 -04:00
  • 1acdc1e753 Put Arena destructor and move constructors in header andrew 2025-09-15 17:01:38 -04:00
  • ae0c014298 Don't clear write interest if pending_response_queue_ non empty andrew 2025-09-15 16:35:37 -04:00
  • e2115152c8 Add tests for shutdown vs close andrew 2025-09-15 15:48:10 -04:00
  • 55f6ebc02b Implement shutting down the write-side only andrew 2025-09-15 15:39:28 -04:00
  • 6b52c4289c Prevent queueing of messages on connection after it will be closed andrew 2025-09-15 15:25:40 -04:00
  • 7ee5ca2a9b Remove dead code, use proper send_ordered_response andrew 2025-09-15 15:08:19 -04:00
  • 9120c05847 Use spend_cpu_cycles instead of volatile loop andrew 2025-09-15 14:07:38 -04:00
  • 528a467518 Make test names match binary names andrew 2025-09-15 13:06:15 -04:00
  • a67d7a8531 Consolidate into one send_ordered_response andrew 2025-09-15 13:01:56 -04:00
  • 6717b70772 Remove HttpConnectionState::response_queue_mutex andrew 2025-09-15 12:32:19 -04:00
  • 34accb9d80 Move GetVersion to commit pipeline andrew 2025-09-15 12:30:02 -04:00
  • f3c3f77a24 Extract commit pipeline to its own module andrew 2025-09-15 11:51:01 -04:00
  • afd240dba7 Remove vestigial "round-robin" code andrew 2025-09-15 11:22:14 -04:00
  • 1cb7a4c301 Remove has_pending_responses_ andrew 2025-09-15 11:10:47 -04:00
  • 1b220d0d1c WIP andrew 2025-09-15 10:28:17 -04:00
  • ec2ad27e33 Add explanatory comments andrew 2025-09-15 00:07:44 -04:00
  • eb98e51867 We expect to get valid fds to close in ~Connection in ~Server andrew 2025-09-15 00:07:09 -04:00
  • 022a79bf5b Separate HttpRequestState and HttpConnectionState andrew 2025-09-14 23:49:32 -04:00
  • fac6b8de88 Add test that shows parsing issue andrew 2025-09-14 22:24:02 -04:00
  • 1f61f91bf5 Reset connection state after finishing with it in http_handler andrew 2025-09-14 21:16:41 -04:00
  • 632113f792 Add test for pipeline request parsing bug andrew 2025-09-14 20:53:19 -04:00
  • f62770c4ab Add copying utility methods to Arena andrew 2025-09-14 20:38:54 -04:00
  • 147edf5c93 More cleanup andrew 2025-09-14 20:17:42 -04:00
  • f39149d516 Update documentation with new networking model andrew 2025-09-14 19:03:56 -04:00
  • 0389fd2c9f Consistently use state->arena for http handling andrew 2025-09-14 17:16:05 -04:00
  • 7ef54a2d08 Call epoll_ctl in release stage andrew 2025-09-14 16:28:12 -04:00
  • 16c7ee0408 Separate Connection and Request lifetimes andrew 2025-09-14 15:04:37 -04:00
  • cf0c1b7cc2 Add echo test for server andrew 2025-09-14 12:56:22 -04:00
  • bd06798fd3 Remove test_http_handler and test_server_connection_return andrew 2025-09-14 11:38:43 -04:00
  • e96a493835 Remove release_back_to_server andrew 2025-09-12 19:43:39 -04:00
  • e887906da8 Remove some unused/indirectly used headers andrew 2025-09-12 19:08:41 -04:00
  • de6f38694f std::unique_ptr<Connection> -> Ref<Connection> andrew 2025-09-12 18:31:57 -04:00
  • 1fa3381e4b Use send/sendmsg and don't ignore SIGPIPE andrew 2025-09-13 17:25:20 -04:00
  • cd2e15677a Remove epoll instances config andrew 2025-09-12 17:58:40 -04:00
  • 2b8f095d27 Fix minor issues andrew 2025-09-12 12:13:50 -04:00
  • 543447971f Fix polymorphic WeakRef bug andrew 2025-09-12 12:05:07 -04:00
  • f89868058a Require explicit copies for Ref/WeakRef andrew 2025-09-12 11:59:56 -04:00
  • 674ff581e7 Update comments/docs to match code andrew 2025-09-12 11:40:38 -04:00
  • be5a0c6d8e Update some inaccuracies in markdown files andrew 2025-09-12 11:31:22 -04:00
  • bf90b8856a Add mdformat pre-commit hook andrew 2025-09-12 11:24:16 -04:00
  • 9d48caca76 add end-of-file-fixer andrew 2025-09-12 11:21:00 -04:00
  • 0561d951d4 Finish std::shared_ptr -> Ref migration andrew 2025-09-11 15:06:04 -04:00
  • a2da7fba84 Explicitly support having a WeakRef to self andrew 2025-09-11 14:54:42 -04:00
  • 5d932bf36c Add polymorphism support to Ref andrew 2025-09-11 14:15:52 -04:00
  • 9a8d4feedd Add documentation andrew 2025-09-11 13:54:00 -04:00
  • 9cd83fc426 Call ~ControlBlock andrew 2025-09-11 13:18:19 -04:00
  • 10e382f633 Used biased weak count, cache T* pointer andrew 2025-09-11 13:15:03 -04:00
  • f83e21b5a0 Defeat shared_ptr's single-threaded optimizations andrew 2025-09-11 13:13:05 -04:00
  • 5adbf8eee2 Organize bench_reference.cpp with doctest andrew 2025-09-11 12:32:25 -04:00
  • 2bc17cbfe6 Add bench_reference.cpp andrew 2025-09-11 12:14:24 -04:00
  • 89c5a2f165 Strengthen language instructing reading the style guide andrew 2025-09-11 12:02:44 -04:00
  • d35a4fa4db Update multi-threaded tests/benchmarks guidance andrew 2025-09-11 12:01:18 -04:00
  • 994e31032f Fix data race in freeing control block andrew 2025-09-11 11:32:59 -04:00
  • 0f179eed88 Switch to two separate atomic counters andrew 2025-09-11 10:41:42 -04:00
  • b9106a0d3c Add test_reference.cpp andrew 2025-09-10 22:05:31 -04:00
  • 6aaca4c171 Finish reference.hpp andrew 2025-09-10 21:58:08 -04:00
  • 7c4d928807 Start on Ref/WeakRef andrew 2025-09-10 18:44:37 -04:00
  • 5d289ddd42 Add metric for write EAGAIN failures andrew 2025-09-10 16:48:27 -04:00
  • 962a010724 Simplify process_connection_writes condition andrew 2025-09-10 16:45:04 -04:00
  • f56ed2bfbe Rename ArenaAllocator -> Arena andrew 2025-09-05 17:57:04 -04:00
  • 46fe51c0bb Make config.toml comments more descriptive and accessible andrew 2025-09-05 16:36:50 -04:00
  • b93cc2072a Remove -Wno-vla-cxx-extension from .clangd andrew 2025-09-05 16:29:12 -04:00
  • 0357a41dd8 Implement spend_cpu_cycles in assembly andrew 2025-09-05 15:16:49 -04:00
  • ffe7ab0a3e Update default in config.toml andrew 2025-09-05 13:06:10 -04:00
  • ed3cf25936 Update stale documentation andrew 2025-09-05 13:04:34 -04:00
  • e67e4aee17 Update /ok to serve dual health check/benchmarking role andrew 2025-09-05 12:39:10 -04:00
  • 761eaa552b Add -Wno-deprecated-literal-operator for clang andrew 2025-09-05 11:39:04 -04:00
  • e846bc49f6 Set rapidjson docs + examples to off andrew 2025-09-05 11:29:08 -04:00
  • 72481be46d Consolidate into two static libs - one with assertions and one without andrew 2025-09-05 11:22:04 -04:00
  • d04705624a Handle percent encoding andrew 2025-09-04 20:42:48 -04:00