Explorar el Código

core: prevent concurrent bun package installs that could cause corruption or conflicts

Dax Raad hace 3 meses
padre
commit
768c81cdfd
Se han modificado 1 ficheros con 4 adiciones y 0 borrados
  1. 4 0
      packages/opencode/src/bun/index.ts

+ 4 - 0
packages/opencode/src/bun/index.ts

@@ -4,6 +4,7 @@ import { Log } from "../util/log"
 import path from "path"
 import { NamedError } from "../util/error"
 import { readableStreamToText } from "bun"
+import { Lock } from "../util/lock"
 
 export namespace BunProc {
   const log = Log.create({ service: "bun" })
@@ -58,6 +59,9 @@ export namespace BunProc {
   )
 
   export async function install(pkg: string, version = "latest") {
+    // Use lock to ensure only one install at a time
+    using _ = await Lock.write("bun-install")
+
     const mod = path.join(Global.Path.cache, "node_modules", pkg)
     const pkgjson = Bun.file(path.join(Global.Path.cache, "package.json"))
     const parsed = await pkgjson.json().catch(async () => {