manager: Hold onto an extra JobManagerMessage sender

Currently the only interfaces that use the job manager are Deck-specific, which
will cause the channel to be dropped early on other hardware. Since it exits
early, the manager sees this as an error condition and exits with a failure
status. By keeping an unused reference to it we can prevent it from being
dropped early.
This commit is contained in:
Vicki Pfau 2025-02-17 19:18:44 -08:00
parent dedbfd4207
commit c19a488b62

View file

@ -97,6 +97,7 @@ macro_rules! setter {
struct SteamOSManager { struct SteamOSManager {
proxy: Proxy<'static>, proxy: Proxy<'static>,
_job_manager: UnboundedSender<JobManagerCommand>,
} }
struct AmbientLightSensor1 { struct AmbientLightSensor1 {
@ -174,7 +175,12 @@ impl SteamOSManager {
job_manager: UnboundedSender<JobManagerCommand>, job_manager: UnboundedSender<JobManagerCommand>,
) -> Result<Self> { ) -> Result<Self> {
job_manager.send(JobManagerCommand::MirrorConnection(system_conn))?; job_manager.send(JobManagerCommand::MirrorConnection(system_conn))?;
Ok(SteamOSManager { proxy }) Ok(SteamOSManager {
proxy,
// Hold onto extra sender to make sure the channel isn't dropped
// early on devices we don't have any interfaces that use job control.
_job_manager: job_manager,
})
} }
} }