actors: Rename hive-bootstrap-message -> bootstrap-message.
[8sync.git] / demos / actors / botherbotherbother.scm
old mode 100644 (file)
new mode 100755 (executable)
index 3a2747a..db3c9d8
@@ -1,3 +1,7 @@
+#!/usr/bin/guile \
+-e main -s
+!#
+
 ;;; 8sync --- Asynchronous programming for Guile
 ;;; Copyright (C) 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;;
 ;;; 8sync --- Asynchronous programming for Guile
 ;;; Copyright (C) 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;;
 
 (define num-students 10)
 
 
 (define num-students 10)
 
-(define (main)
+(define (main . args)
   (define agenda (make-agenda))
   (define hive (make-hive))
   (define agenda (make-agenda))
   (define hive (make-hive))
-  (define professor (hive-create-actor hive <professor>))
+  (define professor (hive-create-actor* hive <professor> "prof"))
   (define namegen (student-name-generator))
   (define students
     (map
      (lambda _
   (define namegen (student-name-generator))
   (define students
     (map
      (lambda _
-       (hive-create-actor* hive <student>
-                           (#:name (namegen))))
+       (let ((name (namegen)))
+         (hive-create-actor* hive <student> name
+                             #:name name)))
      (iota num-students)))
 
   ;; Bootstrap each student into bothering-professor mode.
   (define start-bothering-tasks
     (map
      (lambda (student)
      (iota num-students)))
 
   ;; Bootstrap each student into bothering-professor mode.
   (define start-bothering-tasks
     (map
      (lambda (student)
-       (hive-bootstrap-message hive student 'bother-professor
+       (bootstrap-message hive student 'bother-professor
                                #:target professor))
      students))
 
                                #:target professor))
      students))