gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What is the scheduler about?


From: Danny
Subject: Re: What is the scheduler about?
Date: Sat, 27 Feb 2021 12:45:08 +0000

Hey thanks,

Yeah that clarifies/explains it.

Now I have been able to connect to the identity service, create an ego,
and disconnect on shutdown so that it doesn't get stuck. :)

Thanks!
Danny

On Sat, 2021-02-27 at 10:32 +0100, Schanzenbach, Martin wrote:
> Hi,
>
> let us first try to unpack the "normal" case (GNUNET_PROGRAM_run or
> run2 with scheduler):
>
> The scheduler is basically GNUnet's "main loop". It will run the
> tasks for service communications, for example.
> The scheduler intercepts all signals and handles them, including
> SIGTERM et al.
> It also prevents the program from shutting down if we still have open
> connections/operations with services.
> In order to terminate your program, you need to close all running
> connections and stop all tasks.
> You can do this "cleanup" in the shutdown task. The shudown task will
> run on ctrl-c or the respective
> signals for termination.
> To define the shutdown task, use GNUNET_SCHEDULER_add_shutdown().
> To terminate the scheduler programatically, you can use
> GNUNET_SCHEDULER_shutdown() (which will also run the shutdown tasks).
>
> My assuption now would be that you initiate a connection
> (GNUNET_*_connect()) or an operation on a connected
> handle without cleaning it up properly. That is why your program does
> not terminate.
>
> The other case is running without scheduler (_run2 without
> scheduler).
> In this case you can handle your signals as you wish. You are not in
> the schduler "main loop".
> The program terminates when the control flow ends. But you will also
> not be able to use API
> which requires the scheduler (basically any service API interation).
> So it is used rarely.
>
> BR
> Martin
>
> > On 25. Feb 2021, at 21:49, Danny <danny.de.jong@protonmail.com>
> > wrote:
> >
> > Hey guys,
> >
> > I've been using GNUNET_PROGRAM_run2, and have been trying it with
> > and
> > without the scheduler. What strikes me as odd is that I'm not able
> > to
> > ctrl+c my application. I am also not able to catch the SIGINT in my
> > application. How is this done? Is this intended behavoir?
> >
> > Thanks a lot,
> > Danny
> >
> >
> >






reply via email to

[Prev in Thread] Current Thread [Next in Thread]