问题标签 [interruption]

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 回答
875 浏览

arm - Thumb2和ARM在中断发生时的区别

我正在将一个项目移植到飞思卡尔 TWR-K60F120M 开发板和 Kinetis K60 32 位 ARM® Cortex™-M4 MCU。在操作汇编代码时,我遇到了一个将任务上下文保存在特定寄存器中的函数。

有谁知道当 thumb2(Cortex™-M4 指令集)发生中断时任务上下文保存在哪些寄存器中?

谢谢。

0 投票
1 回答
511 浏览

parsing - 如何编写*可中断*递归(?)下降解析器

我有一个非常标准的递归下降解析器。该算法很简单:每个函数从 a 中读取字符,stream然后返回FAIL或调用后续解析函数(由相应的语法规则指定):

我想解决我stream一次没有完整的情况 - 我异步获取它的部分。因此,我需要的是“可中断性”的特性——我必须能够保存解析器的状态,然后从那时起继续。

遗憾的是,这是嵌套函数调用不可能做到的一件事,因为解析器的所有状态都“存储”在调用堆栈中(按照函数的顺序和它们的局部变量)。

所以我必须以parse*不同的方式构造函数。

我使用的语言是JavaScript

有人可以指出我如何进行的任何想法吗?

编辑:

  • 我似乎很清楚我需要某种状态机。我无法围绕生成器或延续传递风格,在我看来,在保存状态和恢复时有很多小故障。对我来说,我能想到的最清晰的途径是将嵌套调用转换为某种堆栈,将局部变量重写为存储在堆栈项中的一些哈希图,并以不同的线性方式构造解析代码,这样我就可以轻松地“转到“到某个状态。

  • 我看到的子问题之一可能是:由于我没有完整的stream,我认为我必须尝试多个路径并存储所有部分解析的尝试。例如,如果语法说a = b | cthenb可能太长以至于它没有完全在stream. 所以我不能在解析中“挂起” b,我必须同时尝试并保存部分计算。我对吗?

0 投票
1 回答
382 浏览

ios7 - 带有电话中断的 iOS TTS

我有使用 Apple TTS 引擎播放一些语音命令的 iOS7 应用程序,我正在使用它来设置我的音频会话:

然后播放我的命令。

我现在遇到的问题是,如果我的手机接到电话,我的应用程序将在通话过程中继续播放其语音命令,预期我的应用程序将在我接听电话后暂停,然后在通话结束后恢复完毕。

我可以做些什么来确保电话会暂停我的应用程序?

0 投票
2 回答
1323 浏览

java - Java 线程中断:interrupt() 与 stop()

在 Java 中使用线程时遇到问题。在 Java 中中断线程时,interrupt() 和 stop() 之间首选的方法是什么?为什么?

感谢您的任何回复。

0 投票
1 回答
212 浏览

java - 如何杀死提交的 Callable 做不会返回的不间断 IO

我正在尝试构建一个简单的测试用例以发送给 IBM 以尝试解决此问题

我认为创建一个 JUnit 测试用例或一个小的主应用程序进行调用并显示 MQ 调用从未返回是很简单的。我想我会使用 Executor 服务,将我的 MQ 调用包装在 Callable 中,然后使用 Future.get() 将其提交给 executor 服务,并指定超时间隔。

可以肯定的是,调用超时,但应用程序不会死掉。如果我使用 Assert.fail() 或者当超时异常被捕获时,它不会发生,尽管超时异常的堆栈跟踪确实会打印出来。我只能在外部或通过调用 System.exit() 来终止程序。我也不想这样做。有没有办法在 java.util.concurrent 包的框架内杀死线程?

这个问题提供了一个解决方案,但需要注意的是

只要您不在任务中进行不间断的阻塞调用

但这正是我正在做的。有没有办法杀死一个从内部调用不间断 I/O 的程序?

0 投票
2 回答
175 浏览

javascript - 加载完成前设置 div 不可见后,图像宽度和高度为 0

我将很多图像加载到我的网站,如果我有耐心,它可以正常工作。但有时我在图像加载过程中触发一个动作,myDiv.style.display = 'none';然后图像得到宽度=高度=0,因为所有图像都没有完成。当我让我的 div 再次可见时,我看不到它们,但通过搜索 width=height=0 来识别它们。

如果我将宽度和高度设置为大于 0 的值,我会看到图像,但这样会丢失实际大小。我还尝试通过添加类似 .src 的内容来更改 image.src myImage.src += "?t=random";。这样做,myImage.onload函数再次被触发,但宽度和高度仍然为 0。

如何获得图像的实际大小或如何强制重新加载?

0 投票
2 回答
880 浏览

c - 如何使用 scanf 保持程序运行

我想找到一种方法退出“有问题的循环”(见下文)并保持程序运行,我的意思是:在程序中必须有消息:“准备发送信息,退出停止!” 如果用户不键入 exit,程序必须仍在运行,而无需等待用户单击字符然后输入。信息必须连续发送,直到用户键入 exit 退出程序。

我希望我能很好地解释这个问题,并且我确信有一个简单的解决方案

预先感谢您的帮助

0 投票
1 回答
1169 浏览

c - 何时使用 HANDLE_EINTR 或 HANDLE_EAGAIN?

我正在用 C 编写一个 Web 服务器,我经常使用系统调用,错误返回 -1 并将“errno”变量设置为适当的值。一些系统调用可以返回 EINTR 和/或 EAGAIN。我有两个包装器 HANDLE_EINTR、HANDLE_EAGAIN 使用这两个错误值并重试系统调用。

手册页通常参考系统调用是否返回 EINTR 和/或 EAGAIN,但对于某些系统调用,它确实没有。此外,一些系统调用可能不直接返回 EINTR / EAGAIN,而是通过可能在其中使用的其他系统调用的失败返回。

我想问我是否可以使用 HANDLE_EINTR 和/或 HANDLE_EAGAIN 而不管 API 声明了什么(这并不总是完整的)。

另外,我从 Google 的人那里知道,将 HANDLE_EINTR 与“关闭”系统调用一起使用(尽管 API 提到使用它)不是一个好主意,所以我不使用它。是否有任何其他具有此行为的系统调用?

谢谢你。

0 投票
1 回答
1418 浏览

c - 哪些系统调用可以返回 EINTR 或 EAGAIN 错误代码?

以下哪个系统调用可以返回 EINTR 或 EAGAIN/EWOULDBLOCK?

其中一些系统调用在错误时返回 EINTR 或 EAGAIN(通过手册页的 API)。

还存在一些系统调用,API 不引用 EINTR/EAGAIN 而是返回这些。

请帮忙。

0 投票
1 回答
162 浏览

c - Atmega 8中断不起作用

我写了这段代码:

简短描述 - 单击按钮后应调用正确的功能,但只有第一次单击才能工作。如果我删除while循环它可以工作 - 但我必须在循环中检查某事(温度传感器)。怎么了?