From: Cecil Westerhof <Cecil@decebal.nl>
To: help-gnu-emacs@gnu.org
Subject: Re: Idel time continually around 60 seconds
Date: Thu, 11 Jan 2018 18:24:32 +0100 [thread overview]
Message-ID: <87y3l49ulr.fsf@munus.decebal.nl> (raw)
In-Reply-To: 87o9m1v101.fsf@munus.decebal.nl
Cecil Westerhof <Cecil@decebal.nl> writes:
> Narendra Joshi <narendraj9@gmail.com> writes:
>
>> Cecil Westerhof <Cecil@decebal.nl> writes:
>>
>>> I am using Gnus and I have installed a daemon that depending on the
>>> amount of idle time does something, or not. But strangely the idle
>>> time is continuously around 60 seconds. (And I want it to be more.)
>>>
>>> I added some debugging to my daemon routine:
>>> 2018-01-10 14:33:49: Starting gnus-idle-daemon ((23126 5693 809219 184000), (0 60 3465 810000))
>>> 14:33:50: Leaving gnus-idle-daemon (1 second, (0 60 604458 776000))
>>> 2018-01-10 14:34:50: Starting gnus-idle-daemon ((23126 5754 456491 143000), (0 60 858 915000))
>>> 14:34:50: Leaving gnus-idle-daemon (0 seconds, (0 60 516542 418000))
>>> 2018-01-10 14:35:51: Starting gnus-idle-daemon ((23126 5815 17667 46000), (0 60 792 785000))
>>> 14:35:51: Leaving gnus-idle-daemon (0 seconds, (0 60 499851 979000))
>>> 2018-01-10 14:36:51: Starting gnus-idle-daemon ((23126 5875 570675 402000), (0 60 712 877000))
>>> 14:36:52: Leaving gnus-idle-daemon (1 second, (0 60 490399 246000))
>>> 2018-01-10 14:37:52: Starting gnus-idle-daemon ((23126 5936 115162 38000), (0 60 696 902000))
>>> 14:37:52: Leaving gnus-idle-daemon (0 seconds, (0 60 541211 971000))
>>>
>>> When entering I display the values of current-time and
>>> current-idle-time. When leaving only current-idle-time.
>>>
>>> What could be the reason of this?
>> Can you share the code you are using for the above?
>
> It is a lot of code, but I shall give the gist.
It needed some digging, but I found the problem: it is write-region.
But the strange part is that it only happens after the calling
function is finished.
I create a separate message for this.
> Activating is done with:
> (gnus-demon-add-handler 'dcbl-gnus-idle-daemon 1 nil)
>
> I changed the last parameter to nil, so the daemon routine is called
> every minute. If the system has been idle, or not.
>
> The routine itself (which calls other functions again) is:
> (defun dcbl-gnus-idle-daemon ()
> "Do potential time consuming things when Emacs is idle;
> At the moment:
> - dcbl-gnus-delay-send-queue
> - gnus-group-get-new-news.
> - gnus-group-expire-all-groups"
> (setq dcbl-gnus-current-log-format 'start)
> (let ((log-enter-and-leave (and (integerp dcbl-gnus-idle-daemon-do-log)
> (>= dcbl-gnus-idle-daemon-do-log 10)))
> (start-time (current-time)))
> (when log-enter-and-leave
> (dcbl-gnus-log-message (format "Starting gnus-idle-daemon (%s, %s)"
> (current-time) (current-idle-time))))
> (when (and dcbl-gnus-idle-daemon-semafoor
> (>= (time-difference dcbl-gnus-idle-daemon-semafoor (current-time))
> (* 15 +seconds-in-minute+)))
> (setq dcbl-gnus-current-log-format 'start)
> (dcbl-gnus-log-message "ERROR: Needed to reset gnus-idle-daemon-semafoor")
> (setq dcbl-gnus-idle-daemon-semafoor nil))
> (unless dcbl-gnus-idle-daemon-semafoor
> (setq dcbl-gnus-idle-daemon-semafoor (current-time))
> (condition-case err
> ;; Protected form.
> (dolist (poll-element dcbl-gnus-poll-struct)
> (dcbl-gnus-idle-daemon-call-function poll-element))
> ;; The handler.
> (error
> (dcbl-gnus-log-message (format
> "Error in dcbl-gnus-idle-daemon dolist: %s"
> err))
> nil))
> (setq dcbl-gnus-idle-daemon-semafoor nil))
> (when log-enter-and-leave
> (dcbl-gnus-log-message (format "Leaving gnus-idle-daemon (%s, %s)"
> (time-difference-formatted start-time)
> (current-idle-time))))))
>
> When not using Emacs, but playing a video through mpv, I get:
> 2018-01-10 22:32:35: Starting gnus-idle-daemon ((23126 34419 369076 610000), (0 0 658640 85000))
> 22:32:36: Leaving gnus-idle-daemon (1 second, (0 1 392452 151000))
> 2018-01-10 22:33:35: Starting gnus-idle-daemon ((23126 34479 369090 736000), (0 0 753334 161000))
> 22:33:36: Leaving gnus-idle-daemon (1 second, (0 1 562405 319000))
> 2018-01-10 22:34:35: Starting gnus-idle-daemon ((23126 34539 368969 98000), (0 0 673375 295000))
> 22:34:36: Leaving gnus-idle-daemon (1 second, (0 1 432972 290000))
>
> So mpv looks to make Emacs think it is not idle at all.
>
> After this I let Emacs be idle for a few minutes and this gave the
> following:
> 2018-01-10 22:42:35: Starting gnus-idle-daemon ((23126 35019 371985 309000), (0 59 125327 787000))
> 22:42:36: Leaving gnus-idle-daemon (1 second, (0 60 16979 177000))
> 2018-01-10 22:43:35: Starting gnus-idle-daemon ((23126 35079 371650 415000), (0 59 52674 710000))
> 22:43:36: Leaving gnus-idle-daemon (1 second, (0 59 827891 167000))
> 2018-01-10 22:44:35: Starting gnus-idle-daemon ((23126 35139 370952 276000), (0 59 165616 289000))
> 22:44:36: Leaving gnus-idle-daemon (1 second, (0 59 913835 893000))
> 2018-01-10 22:45:35: Starting gnus-idle-daemon ((23126 35199 371468 342000), (0 59 196502 494000))
> 22:45:36: Leaving gnus-idle-daemon (1 second, (0 60 8895 962000))
>
> So my routine does nothing to change idle time, but when coming back,
> it is as if idle time was reset.
--
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof
prev parent reply other threads:[~2018-01-11 17:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-10 13:44 Idel time continually around 60 seconds Cecil Westerhof
2018-01-10 15:11 ` Cecil Westerhof
2018-01-10 19:14 ` Narendra Joshi
[not found] ` <mailman.7156.1515611667.27995.help-gnu-emacs@gnu.org>
2018-01-10 21:48 ` Cecil Westerhof
2018-01-11 17:24 ` Cecil Westerhof [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y3l49ulr.fsf@munus.decebal.nl \
--to=cecil@decebal.nl \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.