Commits

Christian Kellermann committed e476fbb

Make the world-changes, world-inits, world-ends procedures so they are not thread local anymore.

Comments (0)

Files changed (1)

     (error "This parameter can be set to procedures only, you gave it " p))
   p)
 
-(define world-ends (make-parameter void expect-procedure))
-(define world-changes (make-parameter void expect-procedure))
-(define world-inits (make-parameter void expect-procedure))
+(define *world-inits* values)
+(define *world-changes* values)
+(define *world-ends* values)
+
+(define (world-ends f) (set! *world-ends* f))
+(define (world-changes f) (set! *world-changes* f))
+(define (world-inits f) (set! *world-inits* f))
 
 (define-syntax set-color
   (syntax-rules ()
                    (fprintf (current-error-port) "Exception in world-changes: ~a, disabling world-changes.~%" ((condition-property-accessor 'exn 'message) e))
                    (k (world-changes values)))
                  (lambda ()
-                   ((world-changes)
+                   (*world-changes*
                     (map (cut translate-events <> escape)
                          (collect-events))
                     dt
                    (fprintf (current-error-port) "Exception in world-ends: ~a, ignoring world-ends.~%" ((condition-property-accessor 'exn 'message) e))
                    (k (world-ends values)))
                  (lambda ()
-                   ((world-ends))))))
+                   (*world-ends*)))))
              (sdl-quit))))
 
 (define (run-event-loop #!key
         (fprintf (current-error-port) "Exception in world-inits: ~a, ignoring world-inits.~%" ((condition-property-accessor 'exn 'message) e))
         (k (world-inits values)))
       (lambda ()
-        ((world-inits))))))
+        (*world-inits*)))))
   (sdl-flip *s*)
   (if run-in-background
       (thread-start!
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.