service() fails to run inside later::with_temp_loop()
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 45/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- r
- 领域
- backend, networking
调研方向
Start with R/httpuv.R at lines 588-615, where service() and later::run_now() are involved, and compare the behavior inside later::with_temp_loop(). Reproduce the reported case using httpuv::service() and the documented global-loop workaround. Done means service() executes callbacks registered in the global loop without requiring that workaround.
由索引模型根据 Issue 内容生成。
描述
Originally posted in https://github.com/rstudio/pagedown/issues/150
This issue is related to later >= 1.0.0 which introduces private event loops.
The first observation is that httpuv uses only the global event loop even if startServer() is called inside later::with_temp_loop().
The problem is that service() does not execute the callbacks registered in the global loop when called inside later::with_temp_loop().
This comes from the fact that later::run_now() executes the callbacks registered in the current loop.
https://github.com/rstudio/httpuv/blob/57e1d715587acd16b566a910551d08a399d96656/R/httpuv.R#L588-L615
For now, the workaround is to use later::with_loop(later::global_loop(), httpuv::service()) instead of httpuv::service().
- 主要语言
- C
- 星标
- 252
- 派生
- 87
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
rstudio/httpuv 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 64/100
-
难度 4/5 3-5 天 新手友好度 46/100
-
难度 5/5 一周以上 新手友好度 30/100
-
难度 4/5 3-5 天 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
bug good first issue
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
Status: Opened
难度 2/5 1-3 小时 新手友好度 64/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
FriendsofECCE/ECCE#1018 ·
-
难度 2/5 1-3 小时 新手友好度 62/100
immortalwrt/immortalwrt#2522 ·
-
翻译冲突未关闭
难度 1/5 1 小时以内 新手友好度 78/100
fw876/helloworld#2089 ·
维护者通常 1 天内回复