5 // Created by Hori,Masaki on 2017/01/06.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class Queue<T> {
13 private var contents: [T] = []
14 private let lock = NSCondition()
19 defer { lock.unlock() }
21 while contents.count == 0 {
26 return contents.popLast()!
29 func enqueue(_ obj: T) {
32 defer { lock.unlock() }
34 contents.insert(obj, at: 0)