macOS: Racket threads do not run while dragging a slider%
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Lĩnh vực
- desktop
Hướng nghiên cứu
Bắt đầu với ví dụ racket/gui được cung cấp và tái hiện hiện tượng tạm dừng khi kéo một thanh trượt trên macOS. Sau đó kiểm tra queue.rkt và hành vi của chế độ event-tracking; issue cho thấy một nguồn của run loop có thể liên quan. Được xem là hoàn tất khi các thread không thuộc eventspace và timer tiếp tục chạy trong khi kéo các thanh trượt.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Re. https://github.com/Bogdanp/racket-gui-easy/issues/63#issuecomment-3225228993.
As the title says, when dragging a slider, threads other than the eventspace thread are suspended. So, the threads in this example end up not running while dragging the slider (or while initiating a drag and holding the slider):
#lang racket/gui
(define f
(new frame%
[label "Test"]))
(define thd
(thread
(lambda ()
(let loop ()
(println `(value ,(thread-receive)))
(loop)))))
(define tick-thd
(thread
(lambda ()
(let loop ()
(println 'tick)
(sleep 1)
(loop)))))
(define timer
(new timer%
[notify-callback
(lambda ()
(println 'timer-tick))]
[interval 1000]))
(define s
(new slider%
[parent f]
[label "Test"]
[init-value 0]
[min-value 0]
[max-value 100]
[callback (lambda (self _event)
(thread-send thd (send self get-value)))]))
(send f show #t)
Surprisingly, the timer% doesn't run either.
As a hack, I've tried setting up a display link to post dummy events between drag start and end (the display link is necessary because changed: does not fire if you just hold the slider after dragging), but that doesn't seem to help. Probably the right solution is a run loop source in queue.rkt for the event tracking mode, but I'm not sure how to do that.
- Ngôn ngữ chính
- Racket
- Star
- 68
- Fork
- 83
- Merge trung bình
- 9 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của racket/gui
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Issue tương tự
-
build.yml: macOS arm64 DMG fails, cargo missing on the macos-26 runner imageCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
getopenscreen/openscreen#1423 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Extended search mode does not find escape sequences (\t, \n, \r...)Có thể đã có người làm @CyrilB1531 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
dail8859/NotepadNext#1181 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
help wanted linux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
GiuseppeBellamacina/downtime#19 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
NobiResearch/Ovenbird#148 ·
Maintainer thường phản hồi trong vòng 1 ngày