小编ima*_*son的帖子

即使应用程序似乎正在运行,gtk窗口也会停止更新

我维护一个gtk3(虽然是gtk2hs和gi-gtk的混合)应用程序,它作为一个独立的状态栏,用于平铺窗口管理器,称为taffybar.

Taffybar有一个长期存在的错误,其中发生的事情导致其中一个窗口(它可以有多个窗口,例如在多个监视器上显示时)以完全停止更新(此处发布).我已经通过各种日志记录机制验证了应该更新窗口IS的代码实际上继续运行.此外,如果taffybar显示在多个窗口上,窗口将一次受到影响 - 也就是说,挂起似乎只影响它发生的窗口,这排除了UI线程上发生的任何奇怪事情或类似的东西.

不幸的是,我没有一致的方法来重现这个问题.更糟糕的是,我甚至无法想出一种以编程方式检测问题的方法.有了这个说,发现问题相对容易,因为最近添加了新的图标加载机制已经变得更糟(在最新版本中似乎每5分钟发生一次).这提醒我,我应该提到的另一件事是我相对肯定这个问题与pixbufs和图像显示有关,因为我从未见过当工作区图像模块不活动时会出现问题.

我讨厌问一个问题,甚至不能提供一致的方法来重现这个问题,但我只是不知道如何处理/调试这个问题.实际上,我很难想象我所描述的行为是如何实现的.我希望关于这个问题的特殊性质的某些东西可能对于一些比我更了解的人来说已经足够了,可能会对这个问题做出一些猜测.

为了使我的问题尽可能明确,我会将其说成如下:

什么可能导致gtk应用程序窗口挂起(停止更新)而不会崩溃应用程序或UI线程,或影响应用程序创建的任何其他窗口?

编辑:这个错误的另一个有趣的怪癖是,即使窗口停止更新,它仍然响应鼠标输入.

编辑2:另一件值得注意的事情是偶尔,我收到了这样的信息:

gtkicontheme.c:3956:proxy_pixbuf_destroy: assertion failed: (icon_info->proxy_pixbuf != NULL)
Run Code Online (Sandbox Code Playgroud)

当我尝试在代码中销毁挂起的窗口时,我也收到以下消息:

Source ID 363524 was not found when attempting to remove it
Run Code Online (Sandbox Code Playgroud)

我有时会从图标主题加载图标

gtk haskell gtk2hs gdkpixbuf

6
推荐指数
1
解决办法
127
查看次数

逃避反斜杠在elisp中

我试图\]在elisp中创建字符串以包含在正则表达式中.当我返回字符串时,\\]我得到了字符串\\],但是当我返回字符串时,\]我得到字符串].这对我来说没有任何意义.这是ielm的输出:

ELISP> "\\"
"\\"
ELISP> "\\]"
"\\]"
ELISP> "\]"
"]"
Run Code Online (Sandbox Code Playgroud)

这里发生了什么.为什么不是第一个反斜杠逃脱第二个?

string elisp escaping

5
推荐指数
1
解决办法
1235
查看次数

为什么COPY指令在我的Docker构建中导致缓存未命中

我的项目在docker文件中的复制指令似乎导致缓存未命中,即使自从上次将映像推送到docker hub以来,复制的文件均未更改。这将导致所有后续层丢失高速缓存,从而使构建花费的时间大大超过了应有的时间。我还注意到,属于每层的哈希似乎与docker build在本地计算机上时的哈希不同。这可能是因为Docker版本不匹配吗?这里发生了什么?我该如何诊断?

haskell travis-ci docker haskell-stack

-1
推荐指数
2
解决办法
880
查看次数

标签 统计

haskell ×2

docker ×1

elisp ×1

escaping ×1

gdkpixbuf ×1

gtk ×1

gtk2hs ×1

haskell-stack ×1

string ×1

travis-ci ×1