Feature #5945

Add the ability to mark a at_exit as process-local.

Added by Robert Gleeson about 2 years ago. Updated over 1 year ago.

[ruby-core:42256]
Status:Assigned
Priority:Normal
Assignee:Yukihiro Matsumoto
Category:core
Target version:next minor

Description

I'd like to propose a enhancement to atexit.
It would be nice if you could stop a at
exit handler from running in subprocesses.
You can do this manually with this code:

parent = Process.pid

at_exit do
if parent == Process.pid
# …
end
end

You can also do it by bypassing handlers:

at_exit do
# …
end

fork do
exit!
end

But it would be nice if I could do:

at_exit(false) do
# …
end

The first approach is kind of ugly, and the second approach isn't sustainable if code outside
your control can fork(…) without calling exit!.

History

#1 Updated by Yusuke Endoh about 2 years ago

  • Status changed from Open to Assigned
  • Assignee set to Yukihiro Matsumoto

Matz, do you think this kind of feature is needed?
I guess you'll say, the argument should be a keyword option, at least.

atexit(processlocal: true) { ... }

Yusuke Endoh mame@tsg.ne.jp

#2 Updated by Motohiro KOSAKI about 2 years ago

2012/3/30 mame (Yusuke Endoh) mame@tsg.ne.jp:

Issue #5945 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)

Matz, do you think this kind of feature is needed?
I guess you'll say, the argument should be a keyword option, at least.

 atexit(processlocal: true) { ... }

I don't like this name. at_exit() is always process local. He hope to
make no subprocess inheritance option.

#3 Updated by Yusuke Endoh over 1 year ago

  • Target version changed from 1.9.3 to next minor

Also available in: Atom PDF