summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm
diff options
context:
space:
mode:
Diffstat (limited to 'web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm')
-rw-r--r--web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm21
1 files changed, 21 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm b/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm
new file mode 100644
index 00000000..f25b49c1
--- /dev/null
+++ b/web/server/h2o/libh2o/misc/p5-Server-Starter/lib/Server/Starter/Guard.pm
@@ -0,0 +1,21 @@
+package Server::Starter::Guard;
+
+use strict;
+use warnings;
+
+sub new {
+ my ($klass, $handler) = @_;
+ return bless {
+ handler => $handler,
+ active => 1,
+ }, $klass;
+}
+
+sub dismiss { shift->{active} = 0 }
+
+sub DESTROY {
+ my $self = shift;
+ $self->{active} && $self->{handler}->();
+}
+
+1;