Project

General

Profile

Feature #5945

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

Added by robertgleeson (Robert Gleeson) over 7 years ago. Updated 11 months ago.

Status:
Assigned
Priority:
Normal
Target version:
-
[ruby-core:42256]

Description

I'd like to propose a enhancement to at_exit.
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

Updated by mame (Yusuke Endoh) over 7 years ago

  • 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.

at_exit(process_local: true) { ... }

--
Yusuke Endoh mame@tsg.ne.jp

Updated by kosaki (Motohiro KOSAKI) over 7 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.

at_exit(process_local: true) { ... }

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

Updated by mame (Yusuke Endoh) almost 7 years ago

  • Target version changed from 1.9.3 to 2.6
#4

Updated by naruse (Yui NARUSE) over 1 year ago

  • Target version deleted (2.6)
#5

Updated by nobu (Nobuyoshi Nakada) 11 months ago

  • Description updated (diff)

Also available in: Atom PDF