OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace / tests / atoms / parallel / parallel.scm

52 lines · scm ref:
;
; parallel.scm
;
; Part of the unit test for ParallelLink and ExecuteThreadedLink.
;
(use-modules (opencog))

(define nnn 0)
(define (incr) (set! nnn (+ nnn 1)) #t)

(define pllel
	(Parallel
		(SequentialAnd
			(True (Sleep (Number 1)))
			(EvaluationLink
				(GroundedPredicate "scm:incr") (List)))
		(SequentialAnd
			(True (Sleep (Number 3)))
			(EvaluationLink
				(GroundedPredicate "scm:incr") (List)))
		(SequentialAnd
			(True (Sleep (Number 5)))
			(EvaluationLink
				(GroundedPredicate "scm:incr") (List)))
	))

(define wait
	(ExecuteThreaded
		(SequentialAnd
			(True (Sleep (Number 1)))
			(EvaluationLink
				(GroundedPredicate "scm:incr") (List)))
		(SequentialAnd
			(False (Sleep (Number 3)))
			(EvaluationLink
				(GroundedPredicate "scm:incr") (List)))
		(SequentialAnd
			(True (Sleep (Number 5)))
			(EvaluationLink
				(GroundedPredicate "scm:incr") (List)))
	))

; throw exception
(define pllel-bad
	(Parallel (SequentialAnd
		(EvaluationLink (GroundedPredicate "scm:insdfasdfascr") (List)))))

; throw exception
(define wait-bad
	(ExecuteThreaded (SequentialAnd
		(EvaluationLink (GroundedPredicate "scm:insdfasdfascr") (List)))))