結局タスクローカル領域へのアクセスはFutureとして提供してしまうのが(比較的)安全だという結論になった。それでもspawnされたFutureからアクセスするのを止められないという問題があるが…
async fn handler() { let parsed_query = await!(with_get_cx(|cx| { parse_request(cx.request()) }))?; }
-
-
非同期でない処理にawaitを要求するのは直感的ではない感があるが,エラーが実行時に吐かれるよりはまぁましな気もする
Show this thread -
async fn handler() { tokio_executor::spawn(lazy(|| { with_get_cx(|cx| { ... }) }) } と書ける可能性を排除できないが,これは「別スレッドからスレッドローカル変数にアクセスしようとしている」と同じパターンなのでそう書いた側にも責任があると言えば良さそう…
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.