X-Git-Url: https://jxself.org/git/?p=8sync.git;a=blobdiff_plain;f=demos%2Factors%2Fbotherbotherbother.scm;h=69f3190faa291ccf43837b624d473ebc98bacb1a;hp=3bd30a4cfd9f2cc0d141de5ffc96a1fc441ac71a;hb=57b7dfc7a351017e09bd158889ed45fa57e51289;hpb=8cbb7f22227c0afdd3b0bd758ebec0efba2fa1e1 diff --git a/demos/actors/botherbotherbother.scm b/demos/actors/botherbotherbother.scm index 3bd30a4..69f3190 100755 --- a/demos/actors/botherbotherbother.scm +++ b/demos/actors/botherbotherbother.scm @@ -22,8 +22,7 @@ ;; Puppet show simulator. -(use-modules (8sync agenda) - (8sync actors) +(use-modules (8sync actors) (oop goops) (ice-9 hash-table) (ice-9 format)) @@ -103,24 +102,26 @@ (define num-students 10) (define (main . args) - (define agenda (make-agenda)) - (define hive (make-hive)) - (define professor (bootstrap-actor* hive "prof")) - (define namegen (student-name-generator)) - (define students - (map - (lambda _ - (let ((name (namegen))) - (bootstrap-actor* hive name - #:name name))) - (iota num-students))) - - ;; Bootstrap each student into bothering-professor mode. - (define start-bothering-tasks - (map - (lambda (student) - (bootstrap-message hive student 'bother-professor - #:target professor)) - students)) - - (run-hive hive start-bothering-tasks)) + (run-hive + (lambda (hive) + (define professor (bootstrap-actor* hive "prof")) + (define namegen (student-name-generator)) + (define students + (map + (lambda _ + (let ((name (namegen))) + (bootstrap-actor* hive name + #:name name))) + (iota num-students))) + + ;; Bootstrap each student into bothering-professor mode. + (define start-bothering-tasks + (map + (lambda (student) + (<- student 'bother-professor + #:target professor)) + students)) + + (run-hive hive start-bothering-tasks) + ;; in other words, this program doesn't really halt + (wait (make-condition)))))