base: Box 'number-children'
* src/mcron/base.scm (number-children): Box it using SRFI-111 to be
explicit about the mutability of this object.
(update-number-children!): New procedure.
(run-job, child-cleanup): Use it.
* tests/base.scm ("update-number-children!: 1+")
("number-children: init", "update-number-children!: 1-"): New tests.
This commit is contained in:
parent
d63db1ce4e
commit
526ce502e5
2 changed files with 47 additions and 6 deletions
|
|
@ -17,6 +17,7 @@
|
|||
;;; along with GNU Mcron. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(use-modules (srfi srfi-64)
|
||||
(srfi srfi-111)
|
||||
(mcron base))
|
||||
|
||||
(test-begin "base")
|
||||
|
|
@ -148,4 +149,35 @@
|
|||
(with-output-to-string
|
||||
(λ () (display-schedule 1 #:schedule schdl)))))
|
||||
|
||||
;;;
|
||||
;;; Running jobs
|
||||
;;;
|
||||
|
||||
;;; Import private global.
|
||||
(define number-children (@@ (mcron base) number-children))
|
||||
|
||||
;;; Import private procedures.
|
||||
(define update-number-children! (@@ (mcron base) update-number-children!))
|
||||
|
||||
;;; Check 'number-children' initial value.
|
||||
(let ((schdl (make-schedule '() '() 'user)))
|
||||
(test-equal "number-children: init"
|
||||
0
|
||||
(unbox number-children)))
|
||||
|
||||
;;; Check 'update-number-children!' incrementation.
|
||||
(let ((schdl (make-schedule '() '() 'user)))
|
||||
(update-number-children! 1+)
|
||||
(update-number-children! 1+)
|
||||
(test-equal "update-number-children!: 1+"
|
||||
2
|
||||
(unbox number-children)))
|
||||
|
||||
;;; Check 'update-number-children!' decrementation.
|
||||
(let ((schdl (make-schedule '() '() 'user)))
|
||||
(update-number-children! 1-)
|
||||
(test-equal "update-number-children!: 1-"
|
||||
1
|
||||
(unbox number-children)))
|
||||
|
||||
(test-end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue