问题标签 [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 回答
296 浏览

email - 从服务器发送的 Meteor 呼叫电子邮件返回光纤错误

我正在尝试做一些我认为非常微不足道的事情,但显然不是。我需要做一些非常简单的事情,我需要运行一个 setInterval 来检查“今天”是否是新的一天,如果是新的一天,获取一些数据并发送电子邮件。

每次我尝试时,它都会返回我通常的问题错误:Meteor 代码必须始终在 Fiber 中运行。尝试使用 Meteor.bindEnvironment 包装传递给非 Meteor 库的回调。该代码在 Meteor 启动功能中运行在 Meteor 服务器上。所有的帮助将不胜感激,我试图用异步、纤维和未来来解决它,我要么做错了,要么我还没有找到答案。谢谢你,阿莱西奥

0 投票
1 回答
1297 浏览

c - Mac OS 相当于 Windows Fibers API?

我是出于好奇而问这个的。

Windows 提供了他们所谓的Fibers API,它是一种用于轻量级用户进程/线程的 API。

我很想知道 Mac OS 是否也提供这样的功能。据我所知,与它最接近的 Unix 将是setcontext函数系列。但是,尝试在 Mac 程序上调用此类 API 会产生警告,指出这些函数自 OSX 10.6 以来已被弃用。此外,当我尝试编译和运行上面维基百科链接中提供的示例时,我的机器上的第一个swapcontext.

因此,显然setcontextAPI 不适用于 Mac。至少不再了。有没有其他方法可以在 Mac OS 上实现轻量级的用户端线程?系统是否提供这样的功能?

0 投票
1 回答
248 浏览

node.js - 在 cron 作业中找到的 Mongodb 集合抛出新错误('Can\'t wait without a fiber');

我已经使用 npm 包cron设置了一个 cron 作业。我正在尝试执行以下Coll.find().forEach功能,但出现错误Error: Can't wait without a fiber

我一直在使用 npm 包纤维和未来的库。我仍然遇到同样的错误。

0 投票
0 回答
36 浏览

fiber - 关于纤程,什么是用户空间?

人们在解释线程和纤程的区别时,通常会提到纤程位于“用户空间”这一事实。“用户空间”是什么意思?

0 投票
1 回答
563 浏览

matlab - 最小均方均衡光纤通道

我使用 LMS(最小均方算法)的 Matlab 代码来均衡通道的效果,它适用于在 MATLAB 中生成的抽头延迟通道,但对于使用 optisystem 程序的光纤通道,它效果不佳,我认为问题出在光纤脉冲响应中,因为它不是有限脉冲响应,算法需要有限脉冲响应,但如何解决这个问题?

MATLAB 通道和光纤通道的星座,很明显第二个星座没有得到很好的均衡。

星座:

在此处输入图像描述

这是 LMS 算法无法补偿其影响的嘈杂通道的示例,是否有任何方法可以提高其在此 SNR 下的性能:

0 投票
2 回答
556 浏览

c++ - 为什么要 boost::fiber 块?

我正在尝试使用boost::fiber库,但我遇到了“Hello, World”示例的问题。在下面的代码中,程序流在纤程完成后阻塞并且主函数永远不会返回。

结果是:

加入前。
你好,升压::纤维

我用modules-boost的当前开发分支构建了boost::fiber当前开发分支。这是当前实现中的行为错误还是我的使用有问题?

0 投票
1 回答
213 浏览

c# - 排他锁与螺纹光纤

我目前正在开发一个 c# 应用程序,它将作为多人游戏的服务器端工作,但我有点不确定应该如何处理多线程问题。在我继续之前,可能值得一提的是,我对这个话题很陌生。

问题

服务器端应用程序的要求之一是它应该包含特定于应用程序的数据,例如已连接到服务器的对等点的信息,以及它们的位置等。问题在于,如果没有某种形式的线程安全机制,两个请求可能会读取和写入同一条数据,这显然是有问题的。

解决问题

到目前为止,为了解决这个问题,我只是将每个请求都包装在一个锁块中,确保每个请求都以串行顺序发生,这样数据一次只能被一个对等方操作。

最近,在对该主题进行了一些研究之后,我被介绍了 Fiber 的概念,以及一种设置“光纤池”的方法,允许将操作排队到单个光纤上作为另一种尝试确保请求发生的方式按顺序排列。

问题

我对线程和这些类型的主题的了解非常有限。我很想知道更多关于这个话题的信息,特别是我很想知道这两种解决方案的优缺点,以及我最终应该走哪条路。

任何帮助将不胜感激。

0 投票
1 回答
2527 浏览

meteor - 调用 Email.send 后的 Meteor [错误:无法等待没有光纤]

我使用 Meteor 创建了一个非常简单的服务器,用于在超时后发送电子邮件。当我使用超时时,消息成功发送但抛出错误:[Error: Can't wait without a fiber].

这是我的代码:

我知道我可以Meteor.wrapAsync用来制造纤维。但是wrapAsync希望有一个回调来调用,并且Email.send不使用回调。

我应该怎么做才能摆脱错误?

0 投票
1 回答
169 浏览

serialization - Meteor/Fibers - 如何使用 Meteor.call 回调?

我有这段代码,我从客户端调用 Meteor 方法并期望回调中的结果。该results对象是一个格式良好的对象,我可以从服务器的控制台对其进行字符串化和打印。

当我运行此代码时,结果有效且没有错误,不会在客户端上调用回调。但是,如果我用 替换fut.return(results)fut.return(JSON.parse(JSON.stringify(results)))则调用回调并且我在客户端中得到“一个字符串”。知道为什么我可以返回一个字符串但没有对象吗?

服务器代码(在Meteor.Methods()):

客户:

这里的编辑 是我试图作为“结果”传递的 Json:

0 投票
1 回答
336 浏览

asynchronous - 有没有办法在 LLVM 中维护多个堆栈/指令指针?

我一直在为 LLVM 编写一种玩具语言。我想要实现的最雄心勃勃的功能是纤维。我已经阅读了很多关于此事的内容,并且我认为我对传统上它们是如何实现的有一个模糊的概念。据我所知,纤维通常被建模为指令指针和堆栈。(参见:Golang 运行时)

是否有任何 LLVM 支持异步执行,具有不同的指令指针?多栈?

我知道 LLVM 是一台注册机,有没有办法确保所有相关数据都保存在堆栈上?和/或一种保存和恢复当前寄存器状态的方法?

手动实施这将是一个真正的害虫,所以任何帮助表示赞赏!