[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [GNUnet-developers] Make "gnunet-arm -e" not hang
From: |
Christian Grothoff |
Subject: |
Re: [GNUnet-developers] Make "gnunet-arm -e" not hang |
Date: |
Sat, 28 Sep 2019 01:02:30 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
I've for now pushed a fix where the detection that ARM is running isn't
done in PROGRAM_run() or SERVICE_run() but specifically by the programs
where we know that they need it, so in
$ gnunet-arm -e
and
$ gnunet-gns
The test (was/is) written to be synchronous, so if it is needed/desired
elsewhere, it can easily be done by calling
GNUNET_CLIENT_test (cfg, "arm");
(code works for other services, but I don't quite see how this can be
used usefully for anything but "arm").
It was a bit more complicated than expected, as I had to add signaling
from gnunet-service-arm to "gnunet-arm -s" to signal when
gnunet-service-arm is finished opening the listen socket. This is now
done by passing over a pipe *hacking/abusing* the mechanism we
previously used for listen socket passing from ARM to *its* child
services. Basically, when the ARM service inherits listen socket(s), it
just closes them _after_ opening its listen sockets, while all other
services would use these _as_ their listen socket(s).
On 9/27/19 2:25 PM, Schanzenbach, Martin wrote:
> Right now, my best idea is to modify GNUNET_PROGRAM_run() to detect "is
> ARM running" by asking it which services are running, and if we fail to
> detect the ARM listen socket, we give up hard. Furthermore, we could
> pass information to GNUNET_PROGRAM_run() which subset of services ARM
> must support (via autostart or have launched), and again give up if the
> required service(s) are not in the set.
signature.asc
Description: OpenPGP digital signature