When I compile the program and load and run it with (asdf:oos 'asdf:load-op :clx) (load "package") (load "clock") (st-clock:run) it either completely crashes SBCL or it freezes (i.e. the clock stops) sooner or later, usually within the first 24 hours of its run. It looks like a SBCL bug to me. In case of crash, the crash is reported as follows: Argh! gc_find_free_space failed (first_page), nbytes=16. Gen Boxed Unboxed LB LUB !move Alloc Waste Trig WP GCs Mem-age 0: 129350 0 0 0 0 529397048 420552 2000000 0 0 0.0000 1: 1267 399 42 14 264 6942168 111144 8757120 1039 1 3.9396 2: 0 0 0 0 0 0 0 2000000 0 0 0.0000 3: 0 0 0 0 0 0 0 2000000 0 0 0.0000 4: 0 0 0 0 0 0 0 2000000 0 0 0.0000 5: 0 0 0 0 0 0 0 2000000 0 0 0.0000 6: 0 0 0 0 0 0 0 0 0 0 0.0000 Total bytes allocated=536339216 fatal error encountered in SBCL pid 15650 The system is too badly corrupted or confused to continue at the Lisp level. If the system had been compiled with the SB-LDB feature, we'd drop into the LDB low-level debugger now. But there's no LDB in this build, so we can't really do anything but just exit, sorry. In case of freeze, gdb indicates the freeze happens at the following place: 0x0805864e in futex_wait (lock_word=0x986c514, oldval=-1213677184) at linux-os.c:64 64 _syscall4(int,sys_futex, (gdb) where #0 0x0805864e in futex_wait (lock_word=0x986c514, oldval=-1213677184) at linux-os.c:64 Lisp backtrace of the freeze after pressing Ctrl-C: debugger invoked on a SIMPLE-CONDITION in thread 28863: interrupted at #X805861E You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [CONTINUE] Return from SB-UNIX:SIGINT. 1: [ABORT ] Reduce debugger level (leaving debugger, returning to toplevel). 2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop. ("foreign function: call_into_lisp") 0] ba 0: ("foreign function: call_into_lisp") 1: ("foreign function: funcall3") 2: ("foreign function: interrupt_handle_now") 3: ("foreign function: #x80531F5") 4: ("bogus stack frame") 5: ("hairy arg processor for top level local call SB!THREAD::GET-MUTEX/FUTEX" # # #) 6: (XLIB::START-PENDING-COMMAND #) 7: (XLIB::GET-DRAWABLE-GEOMETRY-BUFFER #) 8: (XLIB:DRAWABLE-HEIGHT #) 9: (SPRINGTAIL-CLOCK::REDRAW # # # 3313931441) 10: (SPRINGTAIL-CLOCK::CLOCK # # # #) 11: ("XEP for SPRINGTAIL-CLOCK::CLOCK" # # # # #)[:EXTERNAL] 12: (SPRINGTAIL-CLOCK:RUN) 13: ("XEP for SPRINGTAIL-CLOCK:RUN" #)[:EXTERNAL] 14: (SB-INT:EVAL-IN-LEXENV 2 (SPRINGTAIL-CLOCK:RUN) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SAFETY . 3) (COMPILATION-SPEED . 2) (DEBUG . 2) (SPEED . 1) (SPACE . 1) (INHIBIT-WARNINGS . 1))))[:EXTERNAL] 15: (INTERACTIVE-EVAL 1 (SPRINGTAIL-CLOCK:RUN))[:EXTERNAL] 16: (SB-IMPL::REPL-FUN 1 NIL)[:EXTERNAL] 17: ("#'(LAMBDA NIL (HANDLER-BIND # #))") 18: ("XEP for #'(LAMBDA NIL (HANDLER-BIND # #))" 0)[:EXTERNAL] 19: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX 1 #)[:EXTERNAL] 20: (SB-IMPL::TOPLEVEL-REPL 1 NIL)[:EXTERNAL] 21: (SB-IMPL::TOPLEVEL-INIT 0)[:EXTERNAL] 22: ("FLET SB!IMPL::RESTART-LISP") 0]