+ added a second version of wait-event. See event.scm for details.
This commit is contained in:
		
							parent
							
								
									b909c2a042
								
							
						
					
					
						commit
						03778abc9e
					
				|  | @ -146,13 +146,25 @@ | |||
| 
 | ||||
| ;; wait-event blocks the current thread until an event is available, | ||||
| ;; and then it returns this new event. | ||||
| ;; In future releases this should be done with a select. But for now | ||||
| ;; we just do a loop with event-ready? and next-event. On this machine | ||||
| ;; that uses an acceptable amount of about 1% CPU-Time. | ||||
| 
 | ||||
| (define (wait-event display) | ||||
|   (if (event-ready? display) | ||||
|       (next-event display) | ||||
| ;; This does not work yet! We are working on it. | ||||
| ;(define (wait-event dpy) ; needs ports, locks | ||||
| ;  (let ((port (display-message-inport dpy))) | ||||
| ;    (display "obtaining port lock..." (current-error-port)) | ||||
| ;    (obtain-lock (port-lock port)) | ||||
| ;    (display " ...got it\n" (current-error-port)) | ||||
| ; | ||||
| ;    (display "waiting for events..." (current-error-port)) | ||||
| ;    (wait-for-channel (port->channel port)) | ||||
| ;    (display " ...receiving events.\n" (current-error-port)) | ||||
| ; | ||||
| ;    (release-lock (port-lock port)) | ||||
| ;    (next-event dpy))) | ||||
| 
 | ||||
| ;; The old, ugly version that works... | ||||
| (define (wait-event dpy) | ||||
|   (if (event-ready? dpy) | ||||
|       (next-event dpy) | ||||
|       (begin | ||||
| 	(sleep 20) ; sleep for 20 ms | ||||
| 	(wait-event display)))) | ||||
| 	(wait-event dpy)))) | ||||
|  |  | |||
|  | @ -75,6 +75,9 @@ | |||
|   (open scheme | ||||
| 	external-calls | ||||
| 	threads  ;; for sleep | ||||
| 	ports locks  ;; for locking the port | ||||
| 	channel-i/o ;; for wait-for-channel | ||||
| 	scsh-level-0 ;; for port->channel | ||||
| 	xlib-types) | ||||
|   (files event)) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 frese
						frese