OSDN Git Service

Damageに問題があるときのログを詳細にした
[kcd/KCD.git] / KCD / Queue.swift
1 //
2 //  Queue.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/06.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class Queue {
12     private var contents: [Any] = []
13     private let lock = NSCondition()
14     
15     func dequeue() -> Any {
16         lock.lock()
17         defer { lock.unlock() }
18         while contents.count == 0 {
19             lock.wait()
20         }
21         return contents.popLast()!
22     }
23     func enqueue(_ obj: Any) {
24         lock.lock()
25         defer { lock.unlock() }
26         contents.insert(obj, at: 0)
27         lock.broadcast()
28     }
29 }