                                input)]
         ;; All tasks should have started after 100ms.
         (Thread/sleep 100)
-        (is (= @started (set input)))
+        (is (= (set @started) (set input)))
+        ;; Each task should be started only once.
+        (is (= @started (distinct @started)))
         ;; Start the first task.
         (deliver (first promise-chain) nil)
         ;; Tasks should complete in numerical order, the opposite of the order

                      ~@(for [i input]
                          (list worksym i)))))
                 pool work)))]
    (check-all "upvalues" pmap-like false)))

(deftest test-pfor
  (testing "basic pfor test"

                      ~@(for [i input]
                          (list worksym i)))))
                 pool work)))]
    (check-all "pvalues" pmap-like true false)))

(deftest test-upvalues
  (testing "basic upvalues test"
