Overview
Comment: | This combo of (no) mutexes seems to work best but the blocking still happens |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v2.0001 |
Files: | files | file ages | folders |
SHA1: |
09d825a5e1f4a9c0b1cf882616cb2444 |
User & Date: | matt on 2022-01-14 08:13:37 |
Other Links: | branch diff | manifest | tags |
Context
2022-01-14
| ||
17:57 | merged work for using csm for compiling check-in: fc3edb2f32 user: matt tags: v2.0001 | |
08:13 | This combo of (no) mutexes seems to work best but the blocking still happens check-in: 09d825a5e1 user: matt tags: v2.0001 | |
06:25 | Fixed serialize to be compatible with scm check-in: 829acf0839 user: matt tags: v2.0001 | |
Changes
Modified tests/simplerun/debug.scm from [6634dce456] to [16d17455ce].
|
Modified ulex/ulex.scm from [b06701b724] to [e34b2a5b05].
︙ | |||
71 72 73 74 75 76 77 | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | - + | address-info mailbox matchable ;; queues regex regex-case |
︙ | |||
184 185 186 187 188 189 190 | 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | - + - | (if (setup-listener uconn port-suggestion) (let* ((th1 (make-thread (lambda ()(ulex-cmd-loop uconn)) "Ulex command loop")) (th2 (make-thread (lambda () (case (work-method) ((mailbox limited) (process-work-queue uconn)))) "Ulex work queue processor"))) |
︙ | |||
227 228 229 230 231 232 233 | 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 | - + - + - + - + | (cond (isme (ulex-handler udata dat)) ;; no transmission needed (else (handle-exceptions ;; TODO - MAKE THIS EXCEPTION CMD SPECIFIC? exn (message exn) (begin |
︙ | |||
373 374 375 376 377 378 379 380 381 | 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 | + - + - + + + | ;; given an already set up uconn start the cmd-loop ;; (define (ulex-cmd-loop uconn) (let* ((serv-listener (udat-socket uconn)) (listener (lambda () (let loop ((state 'start)) (let-values (((inp oup)(tcp-accept serv-listener))) ;; (mutex-lock! *send-mutex*) ;; DOESN'T SEEM TO HELP (let* ((rdat (deserialize inp)) ;; '(my-host-port qrykey cmd params) (resp (ulex-handler uconn rdat))) |
︙ | |||
434 435 436 437 438 439 440 | 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 | - + | (case (work-method) ((direct) result) (else (print "ULEX: work "cmd", "params" done in "run-time" ms") ;; send 'response as cmd and result as params (send uconn rem-host-port qrykey 'response result) ;; could check for ack (print "ULEX: response sent back to "rem-host-port" in "(- (current-milliseconds) end-time)))))) |
︙ |