aboutsummaryrefslogtreecommitdiff
path: root/tests/thread-pool.scm
blob: 71b44943ad5f063cba058fd1f9dffb0e1f4263cc (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
(use-modules (tests)
             (srfi srfi-71)
             (fibers)
             (unit-test)
             (knots thread-pool))

(let ((thread-pool
       (make-thread-pool 2)))

  (run-fibers-for-tests
   (lambda ()
     (assert-equal
      (call-with-thread
       thread-pool
       (lambda ()
         4))
      4))))

(let ((thread-pool
       (make-thread-pool
        2
        #:thread-initializer (const '(2)))))

  (run-fibers-for-tests
   (lambda ()
     (assert-equal
      (call-with-thread
       thread-pool
       (lambda (num)
         (* 2 num)))
      4))))

(let ((process-job
       count-jobs
       count-threads
       list-jobs
       (create-work-queue
        2
        (lambda (i)
          (* i 2)))))

  (process-job 3))

(display "thread-pool test finished successfully\n")