[admin] Re: some progress on the usurping problem

Kenny Tilton ktilton at nyc.rr.com
Thu Feb 3 18:52:16 UTC 2005


Gents,

I would like to get Mr. Denno set up as a fellow project admin on the 
Cells-gtk project, including giving him cvs write access. What do we 
need to do?

By the way, it seems I have done it again and can find no trace of the 
emails you sent informing me of various project passwords for cells-gtk. 
I would be amenable to you all working directly with Mr. Denno to get 
those reset. I will catch up later if necessary.

cheers, kenny

Peter Denno wrote:

>Hi,
>
>I have a solution to the problem, but I am puzzled that a simpler solution 
>does not work.  What I'd like to do:
>
>(loop 
>  (loop while (gtk-events-pending)
>                do (gtk-main-iteration-do))
>  (mp:process-wait "Waiting for GTK window event" #'gtk-events-pending)))
>
>Simple enough, right?
>
>Well, it's a mystery to me, but about two seconds elapse after a click on the 
>window and a diagnostic print after the wait. Event handling is really that 
>slow. I've used process-wait on LW recently to handle character input in some 
>low level stuff and it was very responsive. But not here.
>
>Also, I found that if I run that loop as it appears at the listener prompt, 
>without even having a gtk application running, X events on LW windows (mouse 
>clicks and expose events, anyway) will trigger the wait too. I thought that 
>was odd... and maybe somehow related.
>
>Anyway, a solution:
>
>(with-periodic-invocation (:interval 100)
>            (loop while (gtk-events-pending)
>                 do (gtk-main-iteration-do)))
>
>This invokes the loop every 100 milliseconds.
>
>With-periodic-invocation is some stuff I borrowed from a LW CAPI demo:
>
>(defmacro with-periodic-invocation ((&key (interval 500)) &body body)
>  `(invoke-with-periodic-invocation ,interval #'(lambda () , at body)))
>
>(defun invoke-with-periodic-invocation (millisecond-interval closure)
>  (flet ((timer-callback ()
>           (funcall closure)))
>    (let ((timer (mp:make-timer #'timer-callback)))
>      (unwind-protect
>          (progn
>            ;; Schedule the repetitive timer.
>            (mp:schedule-timer-relative-milliseconds timer 
>millisecond-interval millisecond-interval)
>            ;; Wait forever...
>            (mp:process-wait "Periodic wait" #'(lambda () nil)))
>        (when timer
>          (mp:unschedule-timer timer))))))
>
>I don't know how this might port to sbcl etc. I don't recall seeing timers, 
>but then I really shouldn't need them. I think LW is getting confused about 
>X11 events. 
>
>
>  
>

-- 
Cells? Cello? Cells-Gtk?: http://www.common-lisp.net/project/cells/
Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film

"Doctor, I wrestled with reality for forty years, and I am happy to state that I finally won out over it." -- Elwood P. Dowd





More information about the Admin mailing list