mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-15 12:22:18 +02:00
* fix hls close revision file at reader deadline Move the progressive revision reader onto its own task and feed the response stream through a bounded channel. At the deadline the watchdog aborts the reader, so the file handle and revision pin are released even if a stalled client never polls the stream again. Each open revision file now holds its own pin, so GC cannot retire a revision while a handle is open, including one held by an in-flight blocking read. * fix hls close revision file at reader deadline Move the progressive revision reader onto its own task and feed the response stream through a bounded channel. At the deadline the watchdog aborts the reader, so the file handle and revision pin are released even if a stalled client never polls the stream again. Each open revision file now holds its own pin, so GC cannot retire a revision while a handle is open, including one held by an in-flight blocking read. --------- Co-authored-by: euzu <euzu@proton.me>
39 lines
1.2 KiB
TOML
39 lines
1.2 KiB
TOML
[package]
|
|
name = "tuliprox-dvr"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
description = "Digital video recorder: the recording queue, scheduler, supervisors and retention"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
shared = { workspace = true }
|
|
tuliprox-auth = { workspace = true }
|
|
tuliprox-core = { workspace = true }
|
|
tuliprox-messaging = { workspace = true }
|
|
tuliprox-repository = { workspace = true }
|
|
arc-swap.workspace = true
|
|
chrono.workspace = true
|
|
fastrand.workspace = true
|
|
chrono-tz = "0.10.4"
|
|
futures.workspace = true
|
|
libc = "0.2"
|
|
log.workspace = true
|
|
reqwest = { version = "0.13.4", features = ["json", "stream", "rustls", "socks", "form", "query"] }
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
thiserror.workspace = true
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "fs", "time", "macros", "sync", "process"] }
|
|
tokio-util = { version = "0.7.19", features = ["io", "io-util"] }
|
|
url.workspace = true
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.61.2", features = ["Win32_Storage_FileSystem"] }
|
|
|
|
[dev-dependencies]
|
|
blake3.workspace = true
|
|
tempfile = "3.27.0"
|
|
tokio = { workspace = true, features = ["test-util"] }
|