问题标签 [fiber]

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.

0 投票
1 回答
802 浏览

ruby - 红宝石纤维“死纤维叫”

玩转纤维,我知道我在这里做了一些愚蠢的事情。但是尝试基于纤维创建一个简单的可枚举类型的东西(使用 Enumerable 显然是微不足道的)。当我运行以下命令时,在打印出前几次迭代后出现了死纤维错误。有谁知道为什么?

输出:

另一方面,此代码完全可以正常工作:

输出:

0 投票
1 回答
112 浏览

ruby - 在 Ruby 中重用 Fiber

EventMachine.open_keyboard在使用 rbcurse (ncurses gem) 的 irc 客户端应用程序中使用,如下所示:

此代码必须在 Fiber 中并以非阻塞方式捕获输入。在我尝试输入第二行后,ruby 抛出“死纤维”异常。我尝试添加循环,但这也会阻塞,并且将光纤更改为线程不适用于键盘模块。我尝试阻止所有线程的其他方法,其中一种负责保持缓冲区更新/刷新。输入第一行后,如何更改代码以保持 Fiber 打开/活动?要查看键盘模块(不是自己写的),请到这里

编辑:感谢Sawa的回答,我想通了:

0 投票
0 回答
98 浏览

ruby-on-rails - Ruby:事件机器 Tweetstream 和 Fibers

我试图使用 tweetstream gem 来访问 twitter 的流 api 以获取推文并将推文保存在数据库中。

我第一次尝试使用 eventmachine 和 Ruby 纤维来加速推文插入

我不确定我使用红宝石纤维和事件机器的方式是否正确。我需要帮助和建议来告诉我我的 ruby​​ 纤维和事件机器的实现是否正确。

请注意,tweetstream api 配置已在初始化程序中编写并按预期工作。我只需要帮助某人查看我的实施并告诉我是否可以改进。

0 投票
1 回答
98 浏览

c++ - 光纤列表之间的自动切换上下文

有没有办法实现像操作系统这样的系统,为每个进程\线程分配时间?我的意思是当我运行一个进程并在其中执行无限循环时,操作系统仍然可以在一个内核上正常运行。(它会在没有进程许可或命令的情况下自动切换上下文)

我没有光纤使用的内部功能,我可以检查时间和切换上下文。

0 投票
1 回答
93 浏览

windows - 什么是纤维饼干?

当我注意到 GetThreadFromFiberCookie 方法时,我正在浏览 .NET Marshall类。我尝试搜索该术语,但仅在 Windows 上的线程上下文中找到对 Fibers 的引用。那么什么是纤维饼干?

0 投票
1 回答
432 浏览

meteor - JSON 不会插入 Meteor 集合(即使使用 Fiber 或 bindEnvironment)

我意识到已经讨论过类似的主题,我浏览了所有这些主题并尝试模仿解决方案大约 4 小时,但似乎没有一个能解决问题。我不会在用尽我能找到的任何潜在解决方案的情况下发布这个。

我正在尝试将大型 csv 转换为 JSON,然后在转换后将其插入到我的 Meteor 集合中。

这是我使用 Meteor.bindElement 方法的代码:

解析后,我可以很好地记录 JSON,但是当我尝试像这样将它添加到集合中时:

我得到错误:

我可以通过使用以下代码将函数包装在纤维中来摆脱它,但它不会写入我的集合:

因此,我尝试使用第一块代码中所示的 bindEnvironment,这会导致相同的“错误(“Meteor 代码必须始终在 Fiber 内运行”错误。

这是我 /lib 文件夹中的收藏:

我对 Meteor Javascript 和 Coffescript 还很陌生,所以任何反馈都将不胜感激。

另外我想补充一点,我无法让 .run() 在 Fiber 上工作。

0 投票
0 回答
519 浏览

c - 在用户级线程库中使用 swapcontext() 时出现段错误?

我正在尝试使用 setcontext/getcontext/ect... 系统调用库来实现 user=level 线程库。对于我的生活,当我尝试在下面的 waitall 和 yield 函数中交换上下文时,我无法弄清楚为什么会出现段错误。我已经广泛尝试使用 print 语句、valgrind 和 gdb 进行调试,但我仍然无法理解它。谢谢!

0 投票
1 回答
8257 浏览

c++11 - 使用 Boost.Fiber,c++ 是否更接近 Erlang 风格的进程/线程?

我正在阅读http://olk.github.io/libs/fiber/doc/html/在我看来,Boost.Fiber C++ 正在接近 Erlang 拥有数千个“进程”的能力,也称为“绿色”进程[线程]” http://en.wikipedia.org/wiki/Green_threads

我的问题是,Boost.Fiber 准备好投入生产了吗,现在有没有更好的文档和示例的 c++ 替代品?有人提到轻量级线程,但我似乎无法找到它的参考。最后一个问题是,为什么 C++ 标准不包括 Fibers?

我对此感兴趣的原因是因为我有实时更新,其中值的变化可能会影响(产生)成百上千的小但令人尴尬的并行计算。C++ 线程模型不能很好地工作,imo。请不要使用 GPU,因为目前将信息传入和传出 GPU 需要很长时间。

我意识到 Erlang 远不止于此,所以请不要在一般情况下对我进行 Erlang 与 C++ 的教育。

0 投票
0 回答
367 浏览

ruby - `autoload` 的纤程问题:`通过堆栈重绕障碍 (FiberError) 调用纤程`

我们在生产环境中使用带有 eventmachine(em-synchrony)的 Fiber 已经很长时间了,而且效果很好。我们使用过时的 ruby​​ 1.9.3 和 ActiveRecord 3.x 超过 2 年。我们正在将这两个主要部分迁移到最新版本。

在尝试将 ruby​​ 升级到最新版本时,我们fiber called across stack rewinding barrier (FiberError)在 2.0+ 中遇到了异常,但在 1.9.3 中没有。你们能帮我们解决这个问题吗?

最小样本:

测试.rb

用户.rb

更多示例代码在这个 repo 中:

https://github.com/qqshfox/test_fiber

任何帮助,将不胜感激!

0 投票
1 回答
1566 浏览

ruby-on-rails - FiberError - Fiber 跨线程调用

我正在尝试在 Rails 应用程序中编写一个小功能,该功能使用随机词 gem生成随机名词,然后将其复数。我第一次访问开发中的页面时已经能够让它工作,但我希望脚本在每个页面加载时再次运行。现在,后续页面加载(直到我弹回服务器)给了我FiberError in WelcomeController#randomwords, fiber called across threads. 我试图自己解决这个问题,但我对编程很陌生,并不真正了解 Fibers 是如何工作的。我尝试使用 Queue,但无法弄清楚如何让它工作,再次因为我不完全理解这个类。我将如何解决这个特定问题?

来源:welcome_helper.rb