]> Sergey Matveev's repositories - public-inbox.git/commitdiff
ipc: some documentation comments
authorEric Wong <e@80x24.org>
Sun, 3 Jan 2021 02:06:11 +0000 (02:06 +0000)
committerEric Wong <e@80x24.org>
Sun, 3 Jan 2021 18:30:27 +0000 (18:30 +0000)
Fix some comments and add some short summary descriptions to
hopefully make things easier-to-follow.

lib/PublicInbox/IPC.pm

index 288a8c94a0e45086beafb7eed95f9836aee3a10f..79cd34fef79a8c8a587596421ef3a208601772cd 100644 (file)
@@ -10,7 +10,7 @@ use Socket qw(AF_UNIX SOCK_STREAM);
 use Carp qw(confess croak);
 use PublicInbox::Sigfd;
 my ($enc, $dec);
-# ->imports at BEGIN turns serial_*_with_object into custom ops on 5.14+
+# ->imports at BEGIN turns sereal_*_with_object into custom ops on 5.14+
 # and eliminate method call overhead
 BEGIN {
        eval {
@@ -71,9 +71,10 @@ sub ipc_worker_loop ($$) {
        }
 }
 
+# starts a worker if Sereal or Storable is installed
 sub ipc_worker_spawn {
        my ($self, $ident, $oldset) = @_;
-       return unless $enc;
+       return unless $enc; # no Sereal or Storable
        my $pid = $self->{-ipc_worker_pid};
        confess "BUG: already spawned PID:$pid" if $pid;
        confess "BUG: already have worker socket" if $self->{-ipc_sock};
@@ -108,15 +109,17 @@ sub ipc_worker_reap { # dwaitpid callback
        warn "PID:$pid died with \$?=$?\n" if $?;
 }
 
-# for base class, override in superclasses
+# for base class, override in suclasses
 sub ipc_atfork_parent {}
 sub ipc_atfork_child {}
 
+# should only be called inside the worker process
 sub ipc_worker_exit {
        my (undef, $code) = @_;
        exit($code);
 }
 
+# idempotent, can be called regardless of whether worker is active or not
 sub ipc_worker_stop {
        my ($self) = @_;
        my $pid;
@@ -147,6 +150,7 @@ sub ipc_lock_init {
        $self->{-ipc_lock} //= bless { lock_path => $f }, 'PublicInbox::Lock'
 }
 
+# call $self->$sub(@args), on a worker if ipc_worker_spawn was used
 sub ipc_do {
        my ($self, $sub, @args) = @_;
        if (my $s1 = $self->{-ipc_sock}) {