问题标签 [atexit]

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 投票
3 回答
3391 浏览

python - 发生未处理的异常时如何跳过 sys.exitfunc

正如你所看到的,即使程序应该已经死了,它也会从坟墓里说话。有没有办法在出现异常时“取消注册”exitfunction?

输出

0 投票
8 回答
3629 浏览

c - 在 atexit() 中释放

在 atexit() 函数中释放内存有什么意义吗?

我有一个全局变量,在启动后会被 malloc'ed。我可以编写一个 atexit() 函数来释放它,但是当程序退出时系统不会回收所有内存吗?

自己整理并积极清理有什么好处吗?

0 投票
2 回答
23898 浏览

python - Python 多处理 atexit 错误“atexit._run_exitfuncs 中的错误”

我正在尝试在 Python 中运行一个简单的多进程应用程序。主线程产生 1 到 N 个进程并等待它们都完成处理。每个进程都运行一个无限循环,因此它们可能会在没有用户中断的情况下永远运行,所以我输入了一些代码来处理 KeyboardInterrupt:

问题是,当使用 CTRL-C 退出时,即使进程似乎立即退出,我也会收到一个额外的错误:

我在 Windows 上运行 Python 2.6。如果有更好的方法在 Python 中处理多处理,请告诉我。

0 投票
3 回答
3408 浏览

c++ - WSACleanup 和 atExit

可以通过 atExit 函数注册 WSACleanup 吗?我们有几个应用程序可以在代码中的不同点终止,因此我们希望避免将 WSACleanup 放在代码中的任何地方。目前我们通过 DllMain 调用 WSAStartup / WSACleanup,因为我们有一个所有这些应用程序都使用的 dll。但是,Microsoft 严格建议不要通过 DllMain 使用 WSAStartup / WSACleanup,因为这会导致死锁。我们可以将 WSAStarup 移出 DllMain,并在所有应用程序访问 Windows 套接字库之前在代码中的某一点调用它。而且,一旦我们调用 WSAStartup,我们就想使用 atExit 函数来注册对 WSACleanup 的调用。有没有人有这种方法的经验?谢谢!

0 投票
3 回答
2066 浏览

python - 生成的子进程是否继承了已注册的 atexit 处理程序?

我正在使用 python 2.5 编写一个守护程序。在主进程中,向atexit模块注册了退出处理程序,似乎每个子进程结束时都会调用处理程序,这不是我所期望的。

我注意到python doc中没有提到这种行为atexit,有人知道这个问题吗?如果这是它的行为方式,我如何在子进程中取消注册退出处理程序?3.0 版本中有一个 atexit.unregister,但我使用的是 2.5。

0 投票
2 回答
12288 浏览

ruby - ruby at_exit 退出状态

我可以在 at_exit 块中确定自己的进程退出状态吗?

0 投票
1 回答
429 浏览

python - 如何确保注册的 atexit 函数将在 PyObjC 中使用 AppHelper.runEventLoop() 运行?

我只是想知道为什么我注册了一个 atexit 函数......例如

我当然知道什么时候atexit不会工作。当我注释掉AppHelper.runEventLoop()该函数时,该atexit函数被调用。我还浏览了我的pyobjcegg,我在package__init__.py下看到了以下代码:objc

我在鸡蛋中寻找任何参考都无济于事。我还尝试在 周围环绕一个 try-finally 外壳AppHelper.runEventLoop(),并且 finally 块中的命令不会被调用。

希望有人可以在这里帮助我。

PS假设我不想使用应用程序委托的applicationShouldTerminate:方法......

0 投票
1 回答
133 浏览

specman - 当运行以specman结束时,如何自动调用例程?

有没有办法指定在 Specman 中测试结束时应该调用一个函数?

我正在寻找类似于 C 的 atexit() 的东西。

0 投票
6 回答
2822 浏览

c++ - 在所有 '_atexit()' 函数完成后,如何安排一些代码运行

我正在编写一个内存跟踪系统,我实际遇到的唯一问题是,当应用程序退出时,任何未在其构造函数中分配但在其解构函数中释放的静态/全局类在我的内存之后释放跟踪的东西已将分配的数据报告为泄漏。

据我所知,我正确解决此问题的唯一方法是强制将内存跟踪器的 _atexit 回调放置在堆栈的头部(以便最后调用它)或让它在整个_atexit 堆栈已展开。实际上是否可以实现这些解决方案中的任何一个,或者是否有另一个我忽略的解决方案。

编辑:我正在为 Windows XP 开发/开发并使用 VS2005 进行编译。

0 投票
2 回答
209 浏览

c - 在 C 中,“主进程结束”与“调用 atexit 注册的任何函数”之间缺少链接

在 C 中,当主进程结束时——它如何知道调用任何注册的函数atexit()

我了解如何atexit()工作,但我不了解“主进程结束”和“调用任何注册的函数”之间的通信atexit()我有点多余。

谢谢!