File: OnDestroy.pm

package info (click to toggle)
public-inbox 1.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 4,152 kB
  • sloc: perl: 52,771; sh: 302; ansic: 106; makefile: 37
file content (21 lines) | stat: -rw-r--r-- 399 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>

package PublicInbox::OnDestroy;

sub new {
	shift; # ($class, $cb, @args)
	bless [ @_ ], __PACKAGE__;
}

sub DESTROY {
	my ($cb, @args) = @{$_[0]};
	if (!ref($cb) && $cb) {
		my $pid = $cb;
		return if $pid != $$;
		$cb = shift @args;
	}
	$cb->(@args) if $cb;
}

1;