]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/EvCleanup.pm
doc: various overview-level module comments
[public-inbox.git] / lib / PublicInbox / EvCleanup.pm
index 384efd3d57d4c7a9746a554ad8fbeb79bcfed3bc..1a2bdb294a6431a38cb79f7fa69273c6bbf19653 100644 (file)
@@ -8,7 +8,9 @@ use warnings;
 use base qw(Danga::Socket);
 use fields qw(rd);
 
-our $ENABLED;
+my $ENABLED;
+sub enabled { $ENABLED }
+sub enable { $ENABLED = 1 }
 my $singleton;
 my $asapq = [ [], undef ];
 my $nextq = [ [], undef ];
@@ -17,7 +19,11 @@ my $laterq = [ [], undef ];
 sub once_init () {
        my $self = fields::new('PublicInbox::EvCleanup');
        my ($r, $w);
+
+       # This is a dummy pipe which is always writable so it can always
+       # fires in the next event loop iteration.
        pipe($r, $w) or die "pipe: $!";
+       fcntl($w, 1031, 4096) if $^O eq 'linux'; # 1031: F_SETPIPE_SZ
        $self->SUPER::new($w);
        $self->{rd} = $r; # never read, since we never write..
        $self;