Index: example/q/threaded-queue.scm ================================================================== --- example/q/threaded-queue.scm +++ example/q/threaded-queue.scm @@ -53,10 +53,31 @@ (cond ((number? pid) ;; check if still running ;;(print "job-thr("job-id")> timeout; pid="pid" cond1 pid-is-number branch") (let-values (((pid-or-zero normal-exit exitcode-or-signal) (process-wait pid #t))) + + + ;; can get for large number of parallel threads (~ >= 42) + ;; Warning (#): in thread: (process-wait) waiting for child process failed - No child processes: 11322 + + ;; Call history: + + ;; threaded-queue.scm:56: ##sys#call-with-values + ;; threaded-queue.scm:57: process-wait <-- + + ;; Warning (#): in thread: (process-wait) waiting for child process failed - No child processes: 11323did job 467 + ;; did job 464 + + ;; Warning (#): in thread: (process-wait) waiting for child process failed - No child processes: 11318 + + ;; Call history: + + ;; threaded-queue.scm:56: ##sys#call-with-values + ;; threaded-queue.scm:57: process-wait <-- + + ;;(print "job-thr("job-id")> pid-or-zero="pid-or-zero) (cond ((zero? pid-or-zero) ;;(print "job-thr("job-id")> timeout; pid="pid" cond2 pid-or-zero is zero branch") ;;(print "job-thr("job-id")> zero; loop.") @@ -307,12 +328,13 @@ )) (define (test-submit-bunch2) (let* ((q (tjq:new qname: 'test-q sync-job-cap: 42))) (for-each (lambda (x) - (let* ((cmd (conc "echo did job "x))) - (print "submit it--"x) + ;;(let* ((cmd (conc "echo did job "x))) + (let* ((cmd "/bin/true")) + ;;(print "submit it--"x) (q 'submit cmdline: cmd)) ) (iota 600)) ;;(thread-sleep! 10) (q 'drain)