#| This file is a part of stoe project. Copyright (c) 2015 Renaud Casenave-Péré (renaud@casenave-pere.fr) |# (uiop:define-package :stoe/test/jobs (:use :cl :prove :stoe/core/containers :stoe/core/thread :stoe/core/jobs :stoe/test/job-utils)) (in-package :stoe/test/jobs) (stoe/core/jobs::initialize) (defun counter (x) (dotimes (i 10 x) (format t "x ~a~%" x) (incf x))) (plan 3) (with-new-job-thread 1 (async-job () (counter 0)) (sleep 1) (async-job () (counter 0)) (sleep 1) (async-job () (counter 0)) (sleep 1)) (is (size stoe/core/jobs::*job-queue*) 0 "1 thread, 3 jobs, 1 at a time.") (async-job () (counter 0)) (async-job () (counter 0)) (async-job () (counter 0)) (with-new-job-thread 1 (sleep 1)) (is (size stoe/core/jobs::*job-queue*) 0 "1 thread, 3 jobs, all at once.") (with-new-job-thread 3 (async-job () (counter 0)) (async-job () (counter 0)) (async-job () (counter 0)) (sleep 1)) (is (size stoe/core/jobs::*job-queue*) 0 "3 threads, 3 jobs, all at once.") (finalize) (stoe/core/jobs::finalize)