Changeset 12105 in project


Ignore:
Timestamp:
10/02/08 20:23:37 (12 years ago)
Author:
felix winkelmann
Message:

timeout-list removal fixes (thanks to Joerg Wittenberger)

Location:
chicken/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/TODO

    r12104 r12105  
    1010*** pre-optimization
    1111**** changes call-sites and makes them invalid for later pre-optimization
    12 ** scheduler
    13 *** apply srfi
    1412** expander
    1513*** expansion of r5rs_pitfall 4.2 incorrect
  • chicken/trunk/scheduler.scm

    r12021 r12105  
    3636        ##sys#remove-from-ready-queue ##sys#unblock-threads-for-i/o ##sys#force-primordial
    3737        ##sys#fdset-input-set ##sys#fdset-output-set ##sys#fdset-clear
    38         ##sys#fdset-select-timeout ##sys#fdset-restore ##sys#remove-from-timeout-list
     38        ##sys#fdset-select-timeout ##sys#fdset-restore
    3939        ##sys#clear-i/o-state-for-thread!)
    4040  (foreign-declare #<<EOF
  • chicken/trunk/srfi-18.scm

    r11646 r12105  
    231231            (lambda ()
    232232              (case (##sys#slot thread 3)
    233                 [(dead) (apply return (##sys#slot thread 2))]
     233                [(dead)
     234                 (unless (##sys#slot ct 13) ; not unblocked by timeout
     235                   (##sys#remove-from-timeout-list ct))
     236                 (apply return (##sys#slot thread 2))]
    234237                [(terminated)
    235238                 (return
     
    352355                   (lambda ()
    353356                     (##sys#setslot mutex 3 (##sys#delq ct (##sys#slot mutex 3)))
    354                      (##sys#setslot ##sys#current-thread 8 (cons mutex (##sys#slot ##sys#current-thread 8)))
     357                     (unless (##sys#slot ct 13)  ; not unblocked by timeout
     358                       (##sys#remove-from-timeout-list ct))
     359                     (##sys#setslot ct 8 (cons mutex (##sys#slot ct 8)))
    355360                     (##sys#setslot mutex 2 thread)
    356                      #f) )
     361                     (return #f) ))
    357362                  (##sys#thread-block-for-timeout! ct limit)
    358363                  (switch) ]
     
    386391                     (lambda ()
    387392                       (##sys#setslot cvar 2 (##sys#delq ct (##sys#slot cvar 2)))
     393                       (unless (##sys#slot ct 13)  ; not unblocked by timeout
     394                         (##sys#remove-from-timeout-list ct))
    388395                       (return #f) ) )
    389396                    (##sys#thread-block-for-timeout! ct limit) ]
Note: See TracChangeset for help on using the changeset viewer.