[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs gets stuck in wait_reading_process_output sometimes
From: |
joakim |
Subject: |
emacs gets stuck in wait_reading_process_output sometimes |
Date: |
Wed, 11 Jun 2008 21:09:34 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
#0 0x00110422 in __kernel_vsyscall ()
#1 0x00cb85bd in ___newselect_nocancel () from /lib/libc.so.6
#2 0x081adc25 in select_wrapper (n=-514, rfd=0x0, wfd=0xbfd5a178, xfd=0x0,
tmo=0xbfd5a2a8) at process.c:4204
#3 0x081b0e3f in wait_reading_process_output (time_limit=0, microsecs=10000,
read_kbd=0, do_display=0, wait_for_cell=137764129, wait_proc=0xb819ca0,
just_wait_proc=0) at process.c:4587
#4 0x081b2de7 in Faccept_process_output (process=193043620, seconds=0,
millisec=80, just_this_one=137764129) at process.c:3946
This only happens sometimes.
I have a small elisp wrapper for fetchmail, and I think the stuckness
might happen when fetchmail exits, but I'm not sure.
Any hints how to debug this better when it happens?
;jvfetchmail.el
;
;jvfetchmail calls fetchmail. After fetchmail is run, gnus is updated.
;
;my particular mail setup looks like this:
; - get mail via imap with fetchmail
; - filter mail with sieve, using dovecot local delivery agent
; - read mail using gnus from a local dovecot imapd instance on my laptop
;this looks complicated but is surprisingly efficient
;
;jvfetchmail also tries to help you not to obsess over email.
;
;jvfetchmail was only tested on emacs 23
;address@hidden
;call fetchmail and stuff
(defvar jvfetchmail-last-called nil
"when jvfetvhmail was last called")
(defvar jvfetchmail-in-progress nil)
;TODO process might fail, reset "in-progress" flag
;TODO gnus might fail at end, reset "in-progress" flag
;TODO some way of resetting the flag
(provide 'jvfetchmail)
(defun jvfetchmail-sentinel (process event)
(setq jvfetchmail-in-progress nil) ;should rather be called lat but currently
gnus might fail
(let*
((msg (format "fetchmail %s" event)))
(save-excursion
(set-buffer (get-buffer-create "*fetchmail*"))
(gnus-group-get-new-news)
(insert msg))
(princ msg)))
;if no mail : exited abnormally with
code 1
;otherwise: finished
(defun jvfetchmail ()
"run fetchmail and stuff"
(interactive)
(if jvfetchmail-in-progress
(message "jvfetchmail is running already, dont be obsessive")
(progn
(if jvfetchmail-last-called
(progn
(message "jvfetchmail last called %s, %s minutes ago"
(format-time-string "%H:%M" jvfetchmail-last-called)
(round (/ (float-time (time-subtract (current-time)
jvfetchmail-last-called)) 60))))
(message "jvfetchmail 1st run this session"))
(setq jvfetchmail-last-called (current-time))
(setq jvfetchmail-in-progress t)
(save-excursion
(set-buffer (get-buffer-create "*jvfetchmail*"))
(erase-buffer )
(let*
((fetchmail-process (start-process "fetchmail" "*jvfetchmail*"
"fetchmail")))
(set-process-sentinel fetchmail-process 'jvfetchmail-sentinel)
)
)
)
))
(global-set-key (kbd "<f9> m") 'jvfetchmail)
--
Joakim Verona
- emacs gets stuck in wait_reading_process_output sometimes,
joakim <=