2022-06-24: 満員電車に弱い
やったこと
朝
朝は苦手。
というか満員電車が苦手なのだと思う。
どうにかしてくれ。
ReDoS
recheckのプレイグラウンドがタイムアウトをデフォルトから動かすとエラーになるみたいなことを言われた。
circeのデフォルトのやつから変えたので、文字列がきたときに勝手に数値に変換されなくてエラーになってるっぽい。HTMLの <input>
でくる値は基本文字列なので厄介。
とりあえず明示的に数値に変換する方向で修正した。
https://github.com/makenowjust-labs/recheck/pull/501
そしてIRへの変換の実装を地味に進めていた。
楽そうなところから大雑把に。テストの仕組みとかを整備していく。
やれそうな気がしてきた。
JavaScript
同時に実行される async
関数の個数が一つに制限されるようにしたかったので、適当に実装した。
Mutex
とか Semaphore
とかそういう感じ。ただし明示的にロックを取ったりはできなくて、帰ってきた関数に async
関数を渡すと、ロックが取れるまで待ってから実行してくれる。
https://gist.github.com/makenowjust/814668c0f5b003ea9e7fc8938a881066
p-queue
でいいっちゃいいんだけど、ちょっと高級すぎて、そこまでの機能は使わないしな、と思ったときに使える。
多分メモリリークとかも無いだろう。多分。