added context for subscribe method

This commit is contained in:
Milarin 2024-02-09 21:30:14 +01:00
parent bec954ef31
commit e308674337

View File

@ -2,12 +2,13 @@ package hypr
import (
"bufio"
"context"
"strings"
"git.milar.in/milarin/slices"
)
func (i *Instance) Subscribe(events ...EventType) (<-chan Event, error) {
func (i *Instance) Subscribe(ctx context.Context, events ...EventType) (<-chan Event, error) {
r, err := readSocketRaw(i.EventSocketPath(), strings.NewReader(""))
if err != nil {
return nil, err
@ -21,7 +22,8 @@ func (i *Instance) Subscribe(events ...EventType) (<-chan Event, error) {
defer close(out)
sc := bufio.NewScanner(r)
for sc.Scan() {
for ctx.Err() == nil && sc.Scan() {
event := parseEvent(sc.Text())
if _, ok := eventMap[event.Type]; ok {
out <- event