Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: remove select macro of handling interrupt #291

Merged
merged 2 commits into from
Nov 28, 2024

Conversation

kanarus
Copy link
Member

@kanarus kanarus commented Nov 28, 2024

  • refactor interruption handling not to use select! macro ( by implementing and replacing to CtrlC::until_interrupt )
  • this enables more cleaning up dependencies and feature flags
  • and doesn't cause performance degradation

github-actions[bot]
github-actions bot previously approved these changes Nov 28, 2024
…ative"` and def `__rt_native = ["__rt__", ...`
@kanarus kanarus merged commit dff904c into v0.21 Nov 28, 2024
3 checks passed
@kanarus kanarus deleted the refactor/remove-select-macro-of-interrupt branch November 28, 2024 05:18
kanarus added a commit that referenced this pull request Jan 25, 2025
* refactor(ws): extract WebSocket implementation to a crate (#274)

* introduce mews

* check examples/websocket's behavior & fix on ohkami way

* use published version of mews & fix to pass tests

* feat: `ws` on `rt_worker` (#275)

* first support WebSocket on rt_worker in most simple way

* add export `StreamExt` from `ws` on `rt_worker`

* fix comment

* try `ws::worker::Connection` with subset interface of native one

* more conpatible `send` & add `Drop` for `Connection` to clean shutdown

* update doc comment of `#[bindings]` attribute

* update doc comment of `#[bindings]` attribute

* add `IntoResponse for worker::Error`, `ws::Context::upgrade_{durable, durable_with}`

* remove useless trait impls

* not DEBUG

* add split on rt_worker

* update CI & fix to pass CI / update ohkami_* versions

* fix: ws on rt_worker: wrap `ws` in `Rc` instead of clone `ws` itself (#276)

* perf(ws on rt_worker): `SessionMap`: use `swap_remove` & omit redundant `None` check (#278)

* perf(ws on rt_worker): `SessionMap`: use `Vec::swap_remove` in `remove` & omit redundant `None` check in `get`, `get_mut`

* not DEBUG

* enhance: headers set optional value (#279)

* @2024-11-22 18:32+9:00

* remove useless impl & update doc

* not DEBUG

* perf: custom headers: use `Vec<(K, V)>` instead of `FxHashMap<K, V>` (#280)

* perf: custom headers: use `Vec<(K, V)>` instead of `FxHashMap<K, V>`

* fix doc

* fix write_unchecked_to

* fix impl clear

* rename: set `.custom()` -> `.__()` / get `.custom()` -> `.get()` (#281)

* README: mention WebSocket on Durable Object on rt_worker (#282)

* chore(CI): add `v*` to `on.push.branches` (#283)

* chore: fix warnings (#284)

* chore: fix warnings on any features

* fix to pass CI

* refactor: router (#287)

* next router

* @2024-11-20 06:06+9:00

* next: conversion

* next: base Router methods

* fix final's logic & add doc / next: base Router methods

* next: base Router methods

* next: test & fix

* update debugs / next: test & fix

* fix assert condition

* fix split_next_section and usage

* pass

* clear error and warnings

* refactor: runtime abstraction (#288)

* skelton

* next: for glommio

* rt_glommio doesn't exit after Ready

* correctly support graceful shutdown on rt_glommio!!! (some optimization may be possible)

* fix: properly align waker pointers by Box

* remove wrong cfg compile_error!s

* let configured in required feature

* feat: support `nio` async runtime (#289)

* feat: support nio as async runtime

* update docs & Taskfile & test / use mews v0.2

* chore: remove feature flag `testing` && export `testing` module behind `#[cfg(debug_assertions)]` (#290)

* refactor: remove select macro of interruption handling (#291)

* refactor: handle interrupt without `select!` macro -> clean up deps and features

* refactor features flag: `"__rt__", `"__rt_native__"` -> just `"__rt_native"` and def `__rt_native = ["__rt__", ...`

* refactor ohkami_lib::time (#292)

* refactor ohkami_lib::time

* fix benches/imf_fixdate

* chore: add README note what it is (#293)

* rename: `SetHeaders`: `.__()` -> `.x()` (#294)

* docs: update doc comment for current `OHKAMI_*` environment variables (#296)

* docs: update doc comment for current `OHKAMI_*` environment variables

* improve an expression

* fix(native): perform `WaitGroup`'s subtraction in `Drop` impl for panic safety (#297)

* refactor(sse): `DataStream`: more intuitive colocation and interface (#298)

* refactor(sse): colocation, interface

* eliminate double-boxing

* chore(examples): refactor `examples/openai` -> `examples/chatgpt` (#299)

* feat: openapi (#300)

* fix Router.search

* rethink testing with openapi

* add examples/openapi

* fix to run example

* fix FromParam generation

* fix(Request): query structure & parsing

* update example

* gitignore openapi.json

* not skip_serializing any `required` bool

* introduce SchemaList trait for anyOf,allOf,oneOf constructing

* 2025-01-02 21:21+9:00

* impl Case

* next: handle #[serde(flatten)]

* fix Fields::Named case

* skelton of derive_schema_for_struct

* support doc comment

* skelton of derive_schema_for_enum

* support skipping variant

* support doc comment

* fix format

* fix refizing schemas into recursively

* fix typo

* fix(macros): to pass cargo check

* fix(openapi): to pass cargo check

* fix(ohkami): to pass cargo check

* fix(macro): schema call & adding description

* update examples/openapi

* fix skipping field & suppoet skipping Unnamed

* fix #[operation] & update examples/openapi

* fix `request::Query::iter` & update examples/openapi

* update examples/openapi

* fix(README): example/openapi

* move examples/{realworld, openapi} to samples/

* fix to pass CI itself

* fix(CI): perform `test:samples` in `test`

* fix warnings

* update README

* update README

* update README

* update doc comments

* add samples/readme-openapi && fix ohkami_openapi && update README

* fix: samples/test.sh

* fix: samples/test.sh

* update CI

* fix: samples/test.sh

* fix: samples/test.sh

* chore(deps): worker 0.4 -> 0.5 (#301)

* openapi: impl Schema for Cow<str> (#302)

* feat: `openapi` on `rt_worker` (#303)

* 2025-01-16 09:34+9:00

* rename openapi::{request::Input => Inbound} & accept Security { scheme, scopes }

* add openapi::Inbound::None and omit Option<_>

* update: bounds in fang, request&response impls, samples/worker-with-openapi

* fix router::base: merging condition

* update OpenAPI generate interface

* update `#[worker]`

* 2025-01-20 02:14+9:00

* fix #[worker]

* update scripts/workers_openapi.js

* fix router merging

* fix `OpenAPI.servers`: `&[Server]` -> `Vec<Server>`

* update scripts/workers_openapi.js

* fix router merging

* update router Debug

* fix operation searching

* fix: IntoResponse::openapi_responses: remove default implementation

* fix around IntoResponse

* fix WorkerMeta parsing

* fix tests

* update scripts/workers_openapi.js: inherit stdio

* update scripts/workers_openapi.js: remove unused imports

* fix #[worker] doc comment

* update `#[worker]`: read `routes`, `route` of wrangler.toml to apply to default `servers`

* refactor #[worker], script

* updated scripts/worker_openapi.js: edit output based on `wrangler whoami`, `wrangler.toml`

* update README

* fix workers_openapi.js: `app.` -> `this.` in `exit` maybe called before initialization

* add `wrangler.toml.sample` & update test

* install wrangler in CI

* install worker-build in CI

* cargo install wasm-pack in CI

* update test.sh

* fix test.sh use `>>` not `>`

* update test.sh

* add wasm-pack installation (#304)

* openapi: fix `sse::DataStream::openapi_responses` (#305)

* fix `gen_openapi_doc` & update `sse::DataStream` for openapi & add samples/streaming updating test.sh

* diff not `-q` for debugability

* fix samples/worker-with-openapi/openapi.json.sample

* fix(samples): make `worker-with-openapi` sample work & add test for builtin BasicAuth fang (#306)

* fix samples/worker-with-openapi & add test for builtin BasicAuth fang

* fix openapi.json.sample

* fix openapi.json.sample & remove pages

* remove debug code

* fix openapi.json.sample

* feat: local fangs (#307)

* introduce `Ohkami::on`

* update samples

* todo: skip compression where parent has `with` (non global) fangs

* skelton of local fangs

* pass test --lib

* fix to compile samples

* update docs

* feat: pass fangs via `Ohkami::new` (#308)

* update docs, examples, samples as goals

* alter impl & test; remove `Ohkami::with`

* fix docs

* add fang-only `Routing` impls for better developer experience

* restore `Ohkami::with`

* `Memory` to `Context` (#309)

* add bench (tuplemap_vs_hashmap)

* rewrite all

* chore(workspace) (#310)

* control `[package]` keys at workspace root Cargo.toml except for `name`, `description`, `documentation`

* fix docs

* feat: `Request.ip` on rt_worker (#311)

* feat: `Request.ip` on rt_worker

* fix cfg

* chore: fix JSDocs (#312)

* fix(openapi): resolve compile error on `#[worker] async fn` (#313)

* accept unknown flags without `--` and foward to `additionalOptions` (#314)

* openapi: workers_openapi.js: use `npx wrangler` instead of `wrangler` (#315)

* openapi: workers_openapi.js: use `npx wrangler` instead of `wrangler`

* fix sample

* fix(openapi): consider that `process.argv` doesn't have script path in `node -e` (#316)

* chore: remove badgaes from lib.rs's inner doc (#317)

* chore: update README, crate inner doc (#318)

* docs: add doc comment for `Ohkami::{new, with}` (#319)

* docs: add doc comment for `Ohkami::{new, with}`

* fix doc sample codes

* chore: add `Publish` workflow (#320)

* chore: check if branch is main in `Publish` workflow (#321)

* docs: add `handler`, `path params` section in `Ohkami::new` doc (#322)

* docs: `{Name}` -> `"{Name}"` literal-expected args (#323)

* docs: add note about optional query params and `Option<Query<T>>` (#324)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant