Overview
Comment: | Fix to help ulex with connections when buffer isn't filled (and fix merge) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v2.0001 |
Files: | files | file ages | folders |
SHA1: |
2e839ecd70fa1d4b3042b728ad24bd93 |
User & Date: | jmoon18 on 2022-01-14 11:08:21 |
Other Links: | branch diff | manifest | tags |
Context
2022-01-14
| ||
11:08 | Fix to help ulex with connections when buffer isn't filled (and fix merge) check-in: 2e839ecd70 user: jmoon18 tags: v2.0001 | |
06:25 | Fixed serialize to be compatible with scm check-in: 829acf0839 user: matt tags: v2.0001 | |
00:43 | Break serialize-env into two files for scm check-in: 445f1a1231 user: matt tags: v2.0001 | |
2022-01-12
| ||
16:40 | wip, misc cleanup and reduce some messages. check-in: 20b4054f76 user: matt tags: v2.0001 | |
Changes
Modified ulex-trials/Makefile from [d90f81714d] to [3068e6125c].
1 2 3 4 5 6 7 8 | ulex-test : ulex-test.scm ../ulex/ulex.scm csc ulex-test.scm test : ulex-test for x in $$(seq 9);do export NBFAKE_LOG=NBFAKE_$$x;sleep 1;nbfake ./ulex-test run 828$$x;echo $$cmd;$$cmd;done clean : rm -f ulex-test .runners/* NBFAKE* | > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | all : a b ulex-test ulex-test : ulex-test.scm ../ulex/ulex.scm csc ulex-test.scm a : a.scm ../ulex/ulex.scm csc a.scm b : b.scm ../ulex/ulex.scm csc b.scm test : ulex-test for x in $$(seq 9);do export NBFAKE_LOG=NBFAKE_$$x;sleep 1;nbfake ./ulex-test run 828$$x;echo $$cmd;$$cmd;done clean : rm -f ulex-test .runners/* NBFAKE* |
Modified ulex-trials/server-one.scm from [dc113b1a00] to [46e56d98ca].
︙ | ︙ | |||
17 18 19 20 21 22 23 | ;;(close-database db) ))) #t)) "receive")) (th2 (make-thread (lambda () (print "Jeff is here") (let loop ((entries 0)) | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ;;(close-database db) ))) #t)) "receive")) (th2 (make-thread (lambda () (print "Jeff is here") (let loop ((entries 0)) (thread-sleep! 0.8) (print "Preparding to send entries" entries) (handle-exceptions exn (begin (print "Had an issue: " (message exn))(thread-sleep! 10)) (define-values (i o) (tcp-connect "localhost" 6504)) (serialize (list "localhost:6505" "from-server-one") o) (print (read-line i)) (close-input-port i) (close-output-port o)) |
︙ | ︙ |
Modified ulex-trials/server-two.scm from [385cb5b500] to [2a7a7627dc].
︙ | ︙ | |||
17 18 19 20 21 22 23 | ;;(close-database db) ))) #t)) "receive")) (th2 (make-thread (lambda () (print "Jeff is here") (let loop ((entries 0)) | | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | ;;(close-database db) ))) #t)) "receive")) (th2 (make-thread (lambda () (print "Jeff is here") (let loop ((entries 0)) (thread-sleep! 0.8) (print "Preparding to send entries" entries) (handle-exceptions exn (begin (print "Had an issue: " (message exn))(thread-sleep! 10)) (define-values (i o) (tcp-connect "localhost" 6505)) (serialize (list "localhost:6505" "from-server-two") o) (print (read-line i)) (close-input-port i) (close-output-port o)) (loop (+ entries 1)))) "send")) (th3 (make-thread (lambda () (print "In mailbox thread") (let loop2 ((entries2 0)) (print "Processing: " (mailbox-receive! work-mailbox)) (mailbox-send! notify-mailbox (list 'ack)) (thread-sleep! 0.5) (loop2 1))) "processing")) (th4 (make-thread (lambda () (print "In notify-mailbox thread") (let loop3 ((entries3 0)) (print "Notifying: " (mailbox-receive! notify-mailbox)) (handle-exceptions exn (begin (print "Had an issue: " (message exn))(thread-sleep! 10)) (define-values (i o) (tcp-connect "localhost" 6505)) |
︙ | ︙ |
Modified ulex-trials/ulex-test.scm from [f76ffe0828] to [a2b7f04cc7].
︙ | ︙ | |||
26 27 28 29 30 31 32 | (define help "Usage: ulex-test COMMAND where COMMAND is one of: run host:port : start test server - start several in same dir ") (define (call uconn msg addr) | | > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | (define help "Usage: ulex-test COMMAND where COMMAND is one of: run host:port : start test server - start several in same dir ") (define (call uconn msg addr) (print "Sent: "msg" to " addr ", received: " (send-receive uconn addr 'hello msg))) ;; start => hello 0 ;; hello 0 => hello 1 ;; hello 1 => hello 2 ;; ... ;; hello 11 => 'done ;; (define (process-message mesg) (print "In process-message") (let ((parts (string-split mesg))) (match parts ((msg c) (let ((count (string->number c))) (if (> count 10) 'done |
︙ | ︙ | |||
81 82 83 84 85 86 87 | (delete-file* rfile) (sleep 1) (exit)) (if (null? entries) (loop (glob ".runners/*")) (let* ((entry (car entries)) (destaddr (with-input-from-file entry read-line))) | | | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | (delete-file* rfile) (sleep 1) (exit)) (if (null? entries) (loop (glob ".runners/*")) (let* ((entry (car entries)) (destaddr (with-input-from-file entry read-line))) (call uconn (conc "hello-from-"myport"to-"destaddr) (conc "localhost:" destaddr)) ;; (thread-sleep! 0.025) (loop (cdr entries)))))))) ((cmd)(print "ERROR: command "cmd", not recognised.\n\n"help)) (else (print help)))) ) ;; end module (import ulex-test) (main) |
Modified ulex/ulex.scm from [81b8992868] to [b06701b724].
︙ | ︙ | |||
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | work-method ;; parameter; 'threads, 'mailbox, 'limited, 'direct return-method ;; parameter; 'mailbox, 'polling, 'direct ) (import scheme chicken.base chicken.file chicken.time chicken.condition chicken.string chicken.sort chicken.pretty-print address-info mailbox matchable ;; queues regex regex-case s11n srfi-1 srfi-18 srfi-4 srfi-69 system-information tcp6 | > > | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | work-method ;; parameter; 'threads, 'mailbox, 'limited, 'direct return-method ;; parameter; 'mailbox, 'polling, 'direct ) (import scheme chicken.base chicken.file chicken.io chicken.time chicken.condition chicken.string chicken.sort chicken.pretty-print address-info mailbox matchable ;; queues regex regex-case simple-exceptions s11n srfi-1 srfi-18 srfi-4 srfi-69 system-information tcp6 |
︙ | ︙ | |||
223 224 225 226 227 228 229 | ;; dat is a self-contained work block that can be sent or handled locally (dat (list my-host-port qrykey cmd params #;(cons (current-seconds)(current-milliseconds))))) (cond (isme (ulex-handler udata dat)) ;; no transmission needed (else (handle-exceptions ;; TODO - MAKE THIS EXCEPTION CMD SPECIFIC? exn | < > > | > < | 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | ;; dat is a self-contained work block that can be sent or handled locally (dat (list my-host-port qrykey cmd params #;(cons (current-seconds)(current-milliseconds))))) (cond (isme (ulex-handler udata dat)) ;; no transmission needed (else (handle-exceptions ;; TODO - MAKE THIS EXCEPTION CMD SPECIFIC? exn (message exn) (begin ;; (mutex-lock! *send-mutex*) (let-values (((inp oup)(tcp-connect host-port))) (let ((res (if (and inp oup) (begin (serialize dat oup) (close-output-port oup) (deserialize inp) ) (begin (print "ERROR: send called but no receiver has been setup. Please call setup first!") #f)))) (close-input-port inp) ;; (mutex-unlock! *send-mutex*) res)))))))) ;; res will always be 'ack unless return-method is direct (define (send-via-polling uconn host-port cmd data) (let* ((qrykey (make-cookie uconn)) (sres (send uconn host-port qrykey cmd data))) (case sres |
︙ | ︙ |