Use ThreadExecutor instead of calloop executor
I thought the calloop executor had been fixed, but it still seems to have issues that were preventing capture of continuous frames from working consistently. Fixes https://github.com/pop-os/cosmic-workspaces-epoch/issues/160.
This commit is contained in:
parent
7ab1f93acf
commit
74270a2deb
4 changed files with 21 additions and 20 deletions
|
|
@ -159,19 +159,17 @@ impl ScreencopyHandler for AppData {
|
|||
let conn = conn.clone();
|
||||
let release = session.release.take();
|
||||
let qh = qh.clone();
|
||||
self.scheduler
|
||||
.schedule(async move {
|
||||
if let Some(release) = release {
|
||||
// Wait for buffer to be released by server
|
||||
release.await;
|
||||
}
|
||||
let mut session = capture_clone.session.lock().unwrap();
|
||||
let Some(session) = session.as_mut() else {
|
||||
return;
|
||||
};
|
||||
session.attach_buffer_and_commit(&capture_clone, &conn, &qh);
|
||||
})
|
||||
.unwrap();
|
||||
self.thread_pool.spawn_ok(async move {
|
||||
if let Some(release) = release {
|
||||
// Wait for buffer to be released by server
|
||||
release.await;
|
||||
}
|
||||
let mut session = capture_clone.session.lock().unwrap();
|
||||
let Some(session) = session.as_mut() else {
|
||||
return;
|
||||
};
|
||||
session.attach_buffer_and_commit(&capture_clone, &conn, &qh);
|
||||
});
|
||||
|
||||
let front = session.buffers.as_mut().unwrap().first_mut().unwrap();
|
||||
let (buffer, release) = SubsurfaceBuffer::new(front.backing.clone());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue