MaxTotal does not take idle resources into account
まだ誰も着手していません。
評価
調査の方向性
まず Scala の例を再現し、KeyPool.Builder、withMaxTotal、withMaxIdle を追跡して、アイドル状態のリソースがどのようにカウントされるかを確認します。例を再実行し、割り当てが設定された最大値を決して超えないことを検証して修正を確認します。最終的なリソース数は別の問題である可能性があります。
索引モデルが issue の本文から書いたものです。
説明
scala> val p = IO.ref(0).flatMap(ref =>
| KeyPool.Builder((i: Int) => Resource.make(ref.update(_ + 1).as(i))(i => IO.println(s"kill $i") *> ref.update(_ - 1)))
| .withMaxTotal(5)
| .withMaxIdle(5)
| .build.use{ keypool =>
| keypool.take(0).replicateA(5).use(_ => ref.get.flatMap(i => IO.println(s"total $i"))) *>
| keypool.take(1).replicateA(5).use(_ => ref.get.flatMap(i => IO.println(s"total $i"))) *>
| IO.println("DONE") *>
| ref.get
| }
| )
val p: cats.effect.IO[Int] = IO(...)
scala> p.unsafeRunSync()
total 5
total 10
kill 1
kill 1
kill 1
kill 1
DONE
kill 0
kill 0
kill 0
kill 0
kill 0
kill 1
val res29: Int = 6
As you can see, at one point 10 resources are allocated, while the max is set to 5. At the end there are still 6 which might be a separate issue...
- 主要言語
- Scala
- スター
- 40
- フォーク
- 19
- 平均マージ
- 15日 2時間
- マージ済み PR(30日)
- 3
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
typelevel/keypool のほかの issue
-
PoolSpec flakeオープン
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
-
commons-pool2 parity
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
commons-pool2 parity
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
A borrowed resource can postpone its termination対応中かも @iRevive が 1796 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
typelevel/keypool の issue をすべて見る
似ている issue
-
LFSR.tapsMaxPeriod: 17 second tap sets (widths 725 to 755) are a single number larger than the widthオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
chipsalliance/chisel#5512 ·
メンテナーはふだん 2 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 86/100
lunduniversity/introprog#995 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
chipsalliance/rocket-chip#3838 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
ProviderExchangeSinkSpec leaves temp directories and files behind対応中かも @rajmodi8905 が今日担当しました。 オープンgood first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
llm4s/llm4s#1714 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信