- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码生成一个由poll
返回的“用户事件”:
extern crate mio;
use mio::event::Evented;
use mio::{Events, Poll, PollOpt, Ready, Registration, Token};
use std::thread::{sleep, spawn, JoinHandle};
use std::time::{Duration, Instant};
#[derive(Debug)]
struct Output(u32, Duration);
pub struct MioThread {
registration: Registration,
handle: JoinHandle<Output>,
}
impl MioThread {
pub fn new(i: u32) -> MioThread {
let now = Instant::now();
let (registration, set_readiness) = Registration::new2();
let handle = spawn(move || {
sleep(Duration::from_millis((1000 - (100 * i)) as u64));
set_readiness.set_readiness(Ready::readable()).unwrap();
Output(i, now.elapsed())
});
MioThread {
registration: registration,
handle: handle,
}
}
// manage the thread result
fn eval_result(self) {
let out = self.handle.join();
println!("do whathever you want with: {:?}", out.unwrap());
}
}
fn main() {
let poll = Poll::new().unwrap();
let mut events = Events::with_capacity(16);
let mut tasks = Vec::new();
for i in 0..5 {
let mio_thread = MioThread::new(i);
mio_thread
.registration
.register(&poll, Token(i as usize), Ready::readable(), PollOpt::edge())
.unwrap();
tasks.push(Some(mio_thread));
}
loop {
let num_events = poll.poll(&mut events, None).unwrap();
println!("poll fired: {} events", num_events);
for event in &events {
if event.readiness().is_readable() {
let Token(thread_id) = event.token();
if let Some(t) = tasks.remove(thread_id) {
t.eval_result();
}
}
}
}
}
输出是:
poll fired: 1 events
do whathever you want with: Output(4, Duration { secs: 0, nanos: 600967623 })
poll fired: 0 events
poll fired: 1 events
do whathever you want with: Output(3, Duration { secs: 0, nanos: 701035026 })
poll fired: 0 events
poll fired: 1 events
do whathever you want with: Output(2, Duration { secs: 0, nanos: 801089370 })
poll fired: 0 events
poll fired: 1 events
do whathever you want with: Output(1, Duration { secs: 0, nanos: 900890190 })
poll fired: 0 events
poll fired: 1 events
do whathever you want with: Output(0, Duration { secs: 1, nanos: 600076 })
poll fired: 0 events
最佳答案
如评论中所述并确认here :
dropping a Registration might wake up the loop (which it indeed does, the same as a registration) without actually triggering an event
这在大多数情况下显然不是问题,只是我在阅读 docs 后没想到的行为。 :
fn poll(&self, events: &mut Events, timeout: Option) -> Result[−] Wait for readiness events
Blocks the current thread and waits for readiness events for any of the Evented handles that have been registered with this Poll instance. The function will block until either at least one readiness event has been received or timeout has elapsed. A timeout of None means that poll will block until a readiness event has been received.
当前线程确实在删除 Registration
时也被唤醒。
关于rust - 为什么 Mio 的民意调查针对用户生成的事件触发了两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147956/
是否有任何工具可以检查现有的 squashfs 图像并找出每个文件的压缩率? 如果它可以帮助我估计一个巨大的可执行文件中静态链接符号的闪存使用情况,则可以加分。 最佳答案 7zip 程序可以提供这些信
我有自定义调查,在 RootWeb.Properties 中有到期日期。如何在到期日期后将所有想要回复调查的用户(单击“回复调查”或使用指向 NewForm.aspx 的直接链接)重定向到包含一些自定
是否可以通过查询字符串发送答案?像这样的东西: HTTP://survey/1?ASW1=test 最佳答案 是的,请参阅手册 - https://manual.limesurvey.org/Work
我问了一个question关于如何在调试时调查 XMLWriter 对象的内容。我正在尝试检查从内存流创建的 XmlReader 对象的内容,其方式与链接问题的答案中给出的方式类似。但是我收到 Una
如何在调试时查看完全填充的 XmlWriter 对象的 XML 内容。我的 Silverlight 应用程序不允许实际写入文件和检查内容。 最佳答案 让它写入 MemoryStream或 String
我今天才开始使用 AB。阅读一些新的 AB 教程,并尝试尝试对我的网站进行负载测试。 使用它几次后,我收到了大量失败的请求。你能解释一下失败的请求是什么意思吗?我该如何针对此问题进行更多调查? 示例
当我运行 project 时与 valgrind我收到错误报告。如果我不使用 Valgrind,那么程序看起来是正常的,但是当 Valgrind 报告它时,我确定有问题。 ==21286== Inva
我在一页上有 36 个常见问题解答和答案。每个答案都包含在一个可折叠元素中。我的目标是让用户在常见问题解答中单击是或否,然后我通过 GTM/GA 跟踪该值。但是,当我当前单击是或否时,该值显示“感谢您
我们在 aws 上的 hdfs 之上有一个 spark 集群,具有 2 个核心节点和 1 个主节点。最近我发现所有作业都失败了,因为两个核心节点上的磁盘都已满。经过进一步调查发现: /data/var
我正在构建一个 Web 应用程序,它基本上允许“管理员”创建具有任意数量和组合的表单元素(复选框、组合框、文本字段、日期字段、单选组等)的表单。 “用户”将登录此应用程序并完成管理员创建的表格。 我们
想象一下这样的情况。您获得了一些遗留代码或获得了一些新框架。您需要尽快调查并了解如何使用此代码。没有机会向以前的开发人员寻求帮助。什么是最佳实践/方法/方式/步骤/工具(首选 .NET Framewo
我正在尝试从在 MacOS 上运行的 docker 容器访问 host-x.com,但它失败了: $ docker run ubuntu:latest \ /bin/bash -c \ '
我最近研究了 WinForms 应用程序中的一些 .NET“内存泄漏”(即意外的、挥之不去的 GC 根对象)。加载然后关闭一个巨大的报告后,即使经过几次 gen2 收集,内存使用量也没有按预期下降。假
如何允许具有读取权限的用户回复 Sharepoint 2013 调查? 我尝试过仅读取访问权限,但无法获取“回复调查”链接。我还尝试了“贡献访问”选项,这一次,我得到了“回复调查”按钮。当我尝试填写调
如何允许具有读取权限的用户响应 Sharepoint 2013 调查? 我试过只有读取权限,但无法获得“回复调查”链接。我也尝试了“贡献访问”选项,这次,我得到了“响应调查”按钮。当我尝试填写调查详细
目前我正在深入研究 CLR 并尝试找到我的托管对象的适当大小。 我有两个简单的类型: XClass class XClass { public XStruct StructField
我正在调查在由 mesos marathon 编排的 docker 容器中运行的 java 应用程序的内存不足问题。 容器设置为2GB内存 JVM 堆显式设置为最小 1Gb 和最大 1.5GB 持续测
在使用/FA 选项编译使用此虚拟类的代码时 class A { public: A() {} int Initialize() { return 0; } }
我正尝试在 Symfony 3.2.4 和 PHP 5.6.28 中为我的应用程序创建动态调查/表单包 我有 3 个实体:调查/问题/答案 第一步是为每个用户创建一个调查。问题必须与相关的答案字段一起
我正在尝试将一个简单的调查嵌入到弹出窗口中并将其与我的应用程序集成。弹出窗口需要包含一个调查问题,该问题将使用两个选项单选按钮捕获用户的响应。一旦用户选择单选选项,我需要触发一个事件以启用提交按钮。单
我是一名优秀的程序员,十分优秀!