Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Can periodic hook stop rescheduling?



On Tue, 13 Sep 2016 10:49:35 +0200
Sebastian Gniazdowski <sgniazdowski@xxxxxxxxx> wrote:
> I'm using sched to call a function. The problem is, it sometimes
> doesn't reschedule. sched +2 is the first line of the scheduled
> function, however I observed, that when running a completion and
> pressing Ctrl-C to abort something in it (when using
> :completion:*:*:*:default' menu yes select search) this Ctrl-C might
> somehow apparently reach scheduled function and block reschedule. I've
> added a protection via preexec hook – I check when scheduled function
> did last run and reschedule when a delay is detected.

The function that's being called is certainly not immune from getting
^C, and that can certainly stop "sched +2" in its tracks just like any
other command.  The only general fix for this would be blocking SIGINT
sufficiently early that ^C doesn't hit this and restoring it later ---
but given sched +2 is the first line of the script anyway that doesn't
look promising.

You might have better results with

  {
    ...
  } always {
    sched +2 ...
  }

but it's still subject to the same problem if the ^C happens at the
wrong point.

This may need some lateral thinking.

pws



Messages sorted by: Reverse Date, Date, Thread, Author