tinybox

syscall.Select now returns only the count

5cc090d78842017105d9707b1c1fd16e29aa247c

SM <seb.michalk@gmail.com>

2025-09-24 08:13:10 +0000

 tinybox/tb.go | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/tinybox/tb.go b/tinybox/tb.go
index 4010303..22535c2 100644
--- a/tinybox/tb.go
+++ b/tinybox/tb.go
@@ -291,9 +291,9 @@ func queryTermSize() (int, int, error) {
 	fdSet.Bits[fd/64] |= 1 << (uint(fd) % 64)
 	tv := syscall.Timeval{Sec: 1, Usec: 0}
 
-	n, err := syscall.Select(fd+1, fdSet, nil, nil, &tv)
-	if err != nil || n == 0 {
-		return 80, 24, fmt.Errorf("terminal size query timeout")
+	n := syscall.Select(fd+1, fdSet, nil, nil, &tv)
+	if n <= 0 {
+		return 80, 24, fmt.Errorf("timeout")
 	}
 
 	n, err = syscall.Read(syscall.Stdin, buf[:])
@@ -679,11 +679,8 @@ func PollEventTimeout(timeout time.Duration) (Event, error) {
 		Usec: int64((timeout % time.Second) / time.Microsecond),
 	}
 
-	n, err := syscall.Select(fd+1, fdSet, nil, nil, &tv)
-	if err != nil {
-		return Event{}, err
-	}
-	if n == 0 {
+	n := syscall.Select(fd+1, fdSet, nil, nil, &tv)
+	if n <= 0 {
 		return Event{}, fmt.Errorf("timeout")
 	}
 
@@ -1077,8 +1074,8 @@ func GetCursorPos() (x, y int) {
 	fdSet.Bits[fd/64] |= 1 << (uint(fd) % 64)
 	tv := syscall.Timeval{Sec: 1, Usec: 0} // 1 second timeout
 
-	n, err := syscall.Select(fd+1, fdSet, nil, nil, &tv)
-	if err != nil || n == 0 {
+	n := syscall.Select(fd+1, fdSet, nil, nil, &tv)
+	if n <= 0 {
 		return 0, 0
 	}