2017-08-10 19:17:28 +00:00
|
|
|
#lang syndicate
|
2016-12-06 02:04:41 +00:00
|
|
|
|
|
|
|
(provide stop-when-duplicate)
|
|
|
|
|
|
|
|
(require syndicate/protocol/instance)
|
|
|
|
(require "util.rkt")
|
|
|
|
|
|
|
|
(define (stop-when-duplicate spec)
|
|
|
|
(define id (random-hex-string 16))
|
|
|
|
(assert (instance id spec))
|
|
|
|
(on (asserted (instance $id2 spec))
|
|
|
|
(when (string<? id id2)
|
|
|
|
(log-info "Duplicate instance of ~v detected; terminating" spec)
|
2017-07-05 11:13:36 +00:00
|
|
|
(stop-current-facet)))
|
2016-12-06 02:04:41 +00:00
|
|
|
id)
|