Changeset 11659 in project


Ignore:
Timestamp:
08/17/08 10:04:12 (13 years ago)
Author:
elf
Message:

numerous small fixes, mostly reported by certainty

Location:
release/3/remote-repl/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • release/3/remote-repl/trunk/doc.scm

    r11657 r11659  
    7979
    8080        (history
    81             (version "1.0" "20080816 [elf]  Initial release."))
     81            (version "1.0" "20080816 [elf]  Initial release.")
     82            (version "1.1" "20080816 [elf]  Bumped version to 1.1 from numerous small fixes. (mostly reported by certainty)"))
    8283
    8384        (usage)
  • release/3/remote-repl/trunk/remote-repl-client.scm

    r11657 r11659  
    1010;;;;
    1111;;;; changelog:  20080816 [elf]  Initial release.
     12;;;;             20080817 [elf]  Fix for read timeouts. (reported by certainty)
     13;;;;             20080817 [elf]  Bumped version to 1.1
    1214;;;;
    1315
     
    153155    (##sys#check-string host 'rrepl-client-connect)
    154156    (##sys#check-range port 1 32767 'rrepl-client-connect)
     157    (tcp-read-timeout #f)
    155158    (call-with-values
    156159        (lambda ()
     
    169172    (##sys#check-structure cli 'rrepl-client 'rrepl-client-send)
    170173    (if (rrepl-client:active cli)
    171         (begin
     174        (let ((t   #t))
    172175            (condition-case
    173176                ((rrepl-client:print cli) expr (rrepl-client:outport cli))
  • release/3/remote-repl/trunk/remote-repl-server.scm

    r11657 r11659  
    1010;;;;
    1111;;;; changelog:  20080816 [elf]  Initial release.
     12;;;;             20080817 [elf]  Fix for session print timeout.
     13;;;;             20080817 [elf]  Fix for sleep(2) blocking behaviour and
     14;;;;                             main thread blocking.  (reported by certainty)
     15;;;;             20080817 [elf]  Bumped version to 1.1
    1216;;;;
    1317
     
    1721
    1822
     23(require-extension posix)     ; POSIX wrapper library
    1924(require-extension tcp)       ; tcp sockets
    2025(require-extension srfi-1)    ; list library
     
    2833(eval-when (compile)
    2934    (declare
    30         (uses library extras eval tcp srfi-1 srfi-18)
     35        (uses library extras eval tcp posix srfi-1 srfi-18)
     36        (always-bound
     37            rrepl-server-count
     38            rrepl-server-sleep)
    3139        (bound-to-procedure
    3240            rrepl-server-new
     
    116124
    117125
     126;;; variables
     127
     128
     129;; variable: rrepl-server-count
     130;; number of active servers
     131(define rrepl-server-count    0)
     132
     133;; variable: rrepl-server-sleep
     134;; posix sleep(2) procedure
     135(define rrepl-server-sleep    sleep)
     136
     137
     138
    118139;;; data structures
    119140
     
    279300                           (p   (and t
    280301                                     (rrepl-session:active sess)
    281                                      (condition-case
    282                                          ((rrepl-server:print serv)
    283                                            e
    284                                            (rrepl-session:outport sess))
    285                                              (var ()
    286                                                  (if (string=?
    287                                                          (condition-msg var)
    288                                                          "write operation timed out")
    289                                                      (set! t #f)
    290                                                      ((rrepl-server:close serv)
    291                                                          serv sess)))))))
     302                                     (let ploop ((s   #t))
     303                                         (condition-case
     304                                             ((rrepl-server:print serv)
     305                                               e
     306                                               (rrepl-session:outport sess))
     307                                                 (var ()
     308                                                     (if (string=?
     309                                                             (condition-msg var)
     310                                                             "write operation timed out")
     311                                                         (set! s #f)
     312                                                         ((rrepl-server:close serv)
     313                                                             serv sess))))
     314                                         (or s
     315                                             (ploop #t))))))
    292316                        (and (eq? (rrepl-session:active sess) 1)
    293317                             (rrepl-session:active! sess #f))
     
    332356                             (rrepl-server:remotes! serv
    333357                                 (cons s (rrepl-server:remotes serv)))
     358                             (thread-quantum-set! t
     359                                 (+ (tcp-read-timeout)
     360                                    (quotient (tcp-read-timeout) 5)))
    334361                             (thread-start! t))
    335362                        (thread-yield!)
     
    378405    (tcp-read-timeout timeout-read)
    379406    (tcp-write-timeout timeout-write)
     407    (thread-quantum-set! (current-thread)
     408        (- timeout-read (quotient timeout-read 5)))
    380409    (let* ((s   (rrepl-server-new (close-listen clisten)
    381410                                  reader
     
    391420        (rrepl-server:listen-thr! s t)
    392421        (thread-quantum-set! t 1000)
     422        (set! rrepl-server-count (fx+ 1 rrepl-server-count))
     423        (and (fx= 1 rrepl-server-count)
     424             (set! sleep thread-sleep!))
    393425        (thread-start! t)
    394426        s))
     
    404436            (thread-join! (rrepl-session:thread x)))
    405437        (rrepl-server:remotes serv))
     438    (set! rrepl-server-count (fx- rrepl-server-count 1))
     439    (and (fx= 0 rrepl-server-count)
     440         (set! sleep rrepl-server-sleep))
    406441    #t)
    407442
  • release/3/remote-repl/trunk/remote-repl.setup

    r11657 r11659  
    1010;;;;
    1111;;;; changelog:  20080816 [elf]  Initial release.
     12;;;;             20080817 [elf]  Bumped version to 1.1 (numerous small fixes).
    1213;;;;
    1314
     
    1920    'remote-repl-server
    2021    '("remote-repl-server.so" "remote-repl-server.exports" "remote-repl.html")
    21     '((version          1.0)
     22    '((version          1.1)
    2223      (documentation    "remote-repl.html")
    2324      (exports          "remote-repl-server.exports")))
     
    3031    'remote-repl-client
    3132    '("remote-repl-client.so" "remote-repl-client.exports" "remote-repl.html")
    32     '((version          1.0)
     33    '((version          1.1)
    3334      (documentation    "remote-repl.html")
    3435      (exports          "remote-repl-client.exports")))
Note: See TracChangeset for help on using the changeset viewer.