hacky solution to race condition

This commit is contained in:
andrzej 2024-11-03 09:34:45 +01:00
parent b317ef0339
commit 52902aa5c8
1 changed files with 13 additions and 10 deletions

View File

@ -1,7 +1,7 @@
package main
import (
"bufio"
// "bufio"
"fmt"
"log"
"os/exec"
@ -14,14 +14,15 @@ func slideshow(ch <-chan string) {
//set a flat background color based on config defaults
fillCmd := exec.Command("swaybg", "-c", "#232136")
stdout, _ := fillCmd.StdoutPipe()
scanner := bufio.NewScanner(stdout)
out := make(chan string)
go func() {
for scanner.Scan() {
out <- scanner.Text()
}
}()
// stdout, _ := fillCmd.StdoutPipe()
// scanner := bufio.NewScanner(stdout)
// out := make(chan string)
// go func() {
// for scanner.Scan() {
// fmt.Println("scanner: ", scanner.Text())
// out <- scanner.Text()
// }
// }()
ready := make(chan bool)
go func() {
@ -29,7 +30,8 @@ func slideshow(ch <-chan string) {
if err != nil {
fmt.Println("could not set background color", err)
}
<-out
//NOTE: this is *very* hacky, but it is difficult to know when swaybg has initiated
time.Sleep(100 * time.Millisecond)
ready <- true
fmt.Println("bg color set!")
fillCmd.Wait()
@ -38,6 +40,7 @@ func slideshow(ch <-chan string) {
var cmd *exec.Cmd
go func() {
for {
<-ready
newCmd := setRandomWallpaper(dir)
if cmd != nil {
err := cmd.Process.Kill()