Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Ubuntu 26.04/Wayland/Gtk: Resource exhaustion for message-box called in button callback

未关闭
#368 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清

调研方向

首先在 Ubuntu 26.04、Wayland、GTK4 和 GNOME 50 上使用 racket/gui 运行提供的最小程序,然后将 callback 的行为与 Windows 进行比较。调查按钮 callback 中对 message-box 的调用以及报告的 display-flush 错误。当确认对话框出现,并且选择任一选项都能在不耗尽资源的情况下退出时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

Hi,

running the test program below on Ubuntu 26.04/Wayland/Gtk4/Gnome50/Racket 9.1 and selecting "Quit", the message-box is not displayed, instead I'm getting spinning fans for a few seconds, then the program ends with "Gdk-Message: 14:15:24.255: Error flushing display: Resource temporarily unavailable" (original text for the second part in German: "Die Ressource ist zur Zeit nicht verfügbar").

The program runs just fine on Windows, both with Racket 9.0 and Racket 9.1.

I hope the information is good enough to reproduce the issue.

Thanks for the great racket/gui package :)

Best regards, Frank

#lang racket

(require racket/gui)

(define frame
  (new frame% [label "Quit example"] [width 300] [height 100]))

(define quit-button
  (new button% [parent frame] [label "Quit"]
       [callback
        (lambda (_button _event)
          (when (eq? (message-box "Quit" "Do you really want to quit?"
                                  frame '(yes-no)) 'yes)
            (send frame show #f)
            (exit 0)))]))

(send frame show #t)
主要语言
Racket
星标
68
派生
83
平均合并
21 小时
30 天内合并 PR
1

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

racket/gui 的其他 Issue

查看 racket/gui 的全部 Issue

相似的 Issue

更多 Desktop Dev Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。