LoginSignup
2
2

More than 5 years have passed since last update.

[SyncStitch]Deadlock

Last updated at Posted at 2014-04-04

ものすごく簡単な例が欲しい、というわけで。

Deadlockの例
; Definitions
(define-channel rch (x) '((0) (1)))
(define-channel sch (x) '((0) (1)))

; Receiver
(define-process Receiver
  (? rch (x) (= x 0) (! sch (0) Receiver)))

; Sender : Deadlockの例1 SenderもReceiverもメッセージ受信待ち
(define-process Sender
  (? sch (x) (= x 0) (! rch (0) Sender)))

; Sender : Deadlockの例2 Receriverは0を送信するが、Senderは1が来るまで待ち
(define-process Sender
  (! rch (0) (? sch (x) (= x 1) Sender)))

; SYS
(define-process SYS
  (par (list rch sch) Receiver Sender))
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2