问题标签 [fibers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 光纤重启回调问题
我想停止(优雅地或不优雅地)通过光纤运行的功能。Fibers 有 throwInto() 和 reset() 方法来做到这一点。但是当我使用它时,我的回调重新启动。你知道为什么吗 ?
这是我所做的一个小例子。
代码:
输出 :
ruby - 与 Fibers 的简单并行性?
我正在尝试使用两个 Fiber 验证基本的产量/恢复模式。但是,产量/恢复机制似乎不起作用。我尝试了一些变化,但找不到我的错误。
预期的事件顺序:
- 启动线程(时间 0)
- 等到第一次返回(时间+2秒)
- 等到第二次返回(时间+2秒)
- 完成(时间 > +3 秒)
尝试#1
这导致:
添加第二个resume
会导致 FiberError。
尝试#2
这导致:
在这两种情况下,开始/结束时间是相同的,并且不返回结果。
ruby - Ruby 光纤:恢复传输的光纤
我试图了解以下代码片段的行为。我的重点是Fiber#transfer
方法。
我已经用右侧的预期执行顺序对代码行进行了编号。一旦fiber3.resume
返回并调用,我希望在标记为#10fiber2.resume
的行内继续执行。相反,我收到以下错误:fiber2
这是清单最后一行报告的错误:fiber2.resume
.
javascript - 纤维在流星反应中不起作用 - 错误:流星代码必须始终在纤维中运行
我在流星中使用纤维+在服务器端做出反应。我创建了一个 api(使用灵活的:restivus 包的大气js),但我在服务器的日志中收到错误
我收到以下错误:
node.js - Meteor Fibers 错误 - 跨不同版本的 Meteor
我有 3 个不同版本的流星应用程序
- 应用#1 (v1.2.1)
- 应用#2 (v1.3.2.1)
- 应用#3 (v1.4.1)
应用程序 #1 和 #3 运行良好。但是 App#2 收到以下错误消息
module.js:340 错误:找不到模块“纤维”
无奈之下,我将 App#2 升级到 v1.3.3,现在运行正常。但现在 App#1 收到相同的错误消息。有人可以向我解释为什么以及该怎么做吗?我已经从头开始重新安装了 Meteor,但并没有什么不同。任何帮助将不胜感激,因为这让我发疯。
c++ - 为什么我的 boost 光纤代码死锁
我已经尝试过 boost::fibers::barrier ,但我无法找出以下代码死锁的原因:
如果我将启动设置为“调度”,它可以通过。所以它有一些运行顺序,但我不知道出了什么问题。所以我试图想象锁定是如何在幕后进行的,什么在运行等等,但我就是不知道为什么原始代码无法完成。
如果有人不想尝试,让我把我看到的输出放在这里:
我已将我的自定义测试调度程序算法复制到测试代码中,我看到,过了一会儿,没有可用于运行的光纤,本地 id 1 光纤根本无法继续。
Boost 版本为 1.63,带有 Visual Studio 2015 预编译包,编译为 64 位
c++ - 我得到了'boost::fibers::lock_error',但不知道为什么
我运行这段代码
我得到了
它打印的最后一个日志在 _mutex.lock() 之前。如果 t 不是静态变量,则不会抛出任何错误。如果我在主函数中删除 t.flush(),它不会抛出任何错误。使用我在笔记中写的 std::lock_guard ,它旁边的行没有打印出来。我无法弄清楚我尝试过的案例的原因和差异是什么。
我使用 gcc 5.4.0 构建代码,使用 -O0
c++ - 如何正确使用 boost 上下文
我想使用纤维为我的游戏引擎实现一个作业系统。在网上搜索了一个很好的纤维 c++ 实现后,我发现Boost.Context是一个很好的起点。
更新 1:我想实现自己的调度算法,因此Boost.Fiber、Boost.Coroutine、Boost.Coroutine2不适合我的实现。
在为 x64 架构编译 boost 并尝试运行 boost文档中的基本示例后,我得到了以下异常:
boost::context::detail::forced_unwind 在内存位置
这是我尝试运行的代码(Visual Studio 2015 企业版,Windows 7):
代码运行正确(正确输出:0 1 1 2 3 5 8 13 21 34 55),但是当它完成运行时出现异常。
更新 2:仅发布版本发生异常
我想问两个关于提升上下文的问题:
1)是什么导致了堆栈展开异常,如何避免?
2)我发现 boost 文档有点肤浅,并且找不到任何其他关于如何使用 boost 上下文的教程。你能指导我一些关于提升上下文的好资源/教程吗?
node.js - 在 Windows 操作系统的 Meteor 中找不到模块“纤维”
我尝试通过使用 Future 来使用var Future = require('fibers/future')
. 我使用meteor npm install --save fibers
, meteor npm install fibers
, npm install -g fibers
, meteor npm install --save node-gyp, and
npm install -g node-gyp` 安装了光纤。
我在imports文件夹,accessToken文件中使用了future。该文件被导入到服务器文件夹文件中。在构建应用程序时,没有错误。但是当我访问主页时,我收到找不到模块“纤维”的错误。
c++ - 无法编译 boost::fiber 官方示例
我正在尝试 boost::fiber 库,但我无法使用 boost Fiber 编译代码。因此,我转而编译和运行 boost 官方示例。我安装了最新版本的boost library 1.65.1,安装似乎没问题。我执行了以下命令来编译 simple.cpp
但我收到以下抱怨: