Skip to content

Instantly share code, notes, and snippets.

@boraseoksoon
Created August 14, 2018 11:15
Show Gist options
  • Select an option

  • Save boraseoksoon/0792ca8201d911f4986b2f7ce1ac587b to your computer and use it in GitHub Desktop.

Select an option

Save boraseoksoon/0792ca8201d911f4986b2f7ce1ac587b to your computer and use it in GitHub Desktop.
async + recursion + multi-thread serious simplification test code in playground
//: Playground - noun: a place where people can play
import UIKit
import PlaygroundSupport
var freeV = 0
func recur(input: Int, completion: @escaping (Int) -> Void) -> Int {
DispatchQueue.global().async {
print("FOR: is main thread? : ", Thread.isMainThread)
for i in (input * 10)...(input * 100) {
print("[input : \(input)] check for : ", i)
}
print("[input : \(input)] end of for")
}
print("input : ", input)
if input == 2 {
completion(input)
return input
} else {
recur(input: input + 1) { v in
freeV = v
print("[0] freeV : ", freeV)
}
}
print("when to return? : ", input)
return input
}
let result = recur(input: 0) { v in
freeV = v
print("[1] freeV : ", freeV)
}
print("RETURN is main thread? : ", Thread.isMainThread)
print("end of shit,. result : ", result)
print("freeV : ", freeV)
PlaygroundPage.current.needsIndefiniteExecution = true
/**
input : 0
FOR: is main thread? : false
input : 1
FOR: is main thread? : false
input : 2
FOR: is main thread? : false
[0] freeV : 2
when to return? : 1
when to return? : 0
[input : 0] check for : 0
[input : 1] check for : 10
[input : 2] check for : 20
RETURN is main thread? : true
[input : 0] end of for
end of shit,. result : 0
[input : 1] check for : 11
[input : 2] check for : 21
freeV : 2
[input : 1] check for : 12
[input : 1] check for : 13
[input : 2] check for : 22
[input : 1] check for : 14
[input : 2] check for : 23
[input : 1] check for : 15
[input : 2] check for : 24
[input : 1] check for : 16
[input : 2] check for : 25
[input : 1] check for : 17
[input : 2] check for : 26
[input : 1] check for : 18
[input : 2] check for : 27
[input : 1] check for : 19
[input : 2] check for : 28
[input : 1] check for : 20
[input : 2] check for : 29
[input : 1] check for : 21
[input : 2] check for : 30
[input : 1] check for : 22
[input : 2] check for : 31
[input : 1] check for : 23
[input : 2] check for : 32
[input : 1] check for : 24
[input : 2] check for : 33
[input : 1] check for : 25
[input : 2] check for : 34
[input : 1] check for : 26
[input : 2] check for : 35
[input : 1] check for : 27
[input : 2] check for : 36
[input : 1] check for : 28
[input : 2] check for : 37
[input : 1] check for : 29
[input : 2] check for : 38
[input : 1] check for : 30
[input : 2] check for : 39
[input : 1] check for : 31
[input : 2] check for : 40
[input : 1] check for : 32
[input : 2] check for : 41
[input : 1] check for : 33
[input : 2] check for : 42
[input : 1] check for : 34
[input : 2] check for : 43
[input : 2] check for : 44
[input : 1] check for : 35
[input : 1] check for : 36
[input : 2] check for : 45
[input : 1] check for : 37
[input : 2] check for : 46
[input : 1] check for : 38
[input : 2] check for : 47
[input : 1] check for : 39
[input : 2] check for : 48
[input : 1] check for : 40
[input : 2] check for : 49
[input : 1] check for : 41
[input : 2] check for : 50
[input : 1] check for : 42
[input : 1] check for : 43
[input : 2] check for : 51
[input : 1] check for : 44
[input : 2] check for : 52
[input : 1] check for : 45
[input : 1] check for : 46
[input : 2] check for : 53
[input : 1] check for : 47
[input : 1] check for : 48
[input : 2] check for : 54
[input : 1] check for : 49
[input : 2] check for : 55
[input : 1] check for : 50
[input : 2] check for : 56
[input : 1] check for : 51
[input : 2] check for : 57
[input : 1] check for : 52
[input : 2] check for : 58
[input : 2] check for : 59
[input : 1] check for : 53
[input : 2] check for : 60
[input : 1] check for : 54
[input : 2] check for : 61
[input : 1] check for : 55
[input : 2] check for : 62
[input : 1] check for : 56
[input : 2] check for : 63
[input : 1] check for : 57
[input : 2] check for : 64
[input : 1] check for : 58
[input : 2] check for : 65
[input : 2] check for : 66
[input : 1] check for : 59
[input : 2] check for : 67
[input : 1] check for : 60
[input : 2] check for : 68
[input : 1] check for : 61
[input : 1] check for : 62
[input : 2] check for : 69
[input : 1] check for : 63
[input : 2] check for : 70
[input : 2] check for : 71
[input : 1] check for : 64
[input : 2] check for : 72
[input : 2] check for : 73
[input : 1] check for : 65
[input : 2] check for : 74
[input : 2] check for : 75
[input : 1] check for : 66
[input : 2] check for : 76
[input : 2] check for : 77
[input : 1] check for : 67
[input : 1] check for : 68
[input : 2] check for : 78
[input : 2] check for : 79
[input : 1] check for : 69
[input : 2] check for : 80
[input : 1] check for : 70
[input : 2] check for : 81
[input : 1] check for : 71
[input : 2] check for : 82
[input : 1] check for : 72
[input : 2] check for : 83
[input : 1] check for : 73
[input : 2] check for : 84
[input : 2] check for : 85
[input : 1] check for : 74
[input : 2] check for : 86
[input : 1] check for : 75
[input : 2] check for : 87
[input : 2] check for : 88
[input : 1] check for : 76
[input : 2] check for : 89
[input : 1] check for : 77
[input : 2] check for : 90
[input : 1] check for : 78
[input : 2] check for : 91
[input : 1] check for : 79
[input : 2] check for : 92
[input : 1] check for : 80
[input : 1] check for : 81
[input : 2] check for : 93
[input : 1] check for : 82
[input : 2] check for : 94
[input : 1] check for : 83
[input : 2] check for : 95
[input : 2] check for : 96
[input : 1] check for : 84
[input : 2] check for : 97
[input : 1] check for : 85
[input : 2] check for : 98
[input : 1] check for : 86
[input : 1] check for : 87
[input : 1] check for : 88
[input : 2] check for : 99
[input : 1] check for : 89
[input : 2] check for : 100
[input : 1] check for : 90
[input : 2] check for : 101
[input : 1] check for : 91
[input : 2] check for : 102
[input : 1] check for : 92
[input : 2] check for : 103
[input : 2] check for : 104
[input : 1] check for : 93
[input : 2] check for : 105
[input : 1] check for : 94
[input : 2] check for : 106
[input : 1] check for : 95
[input : 2] check for : 107
[input : 1] check for : 96
[input : 1] check for : 97
[input : 2] check for : 108
[input : 1] check for : 98
[input : 2] check for : 109
[input : 1] check for : 99
[input : 2] check for : 110
[input : 1] check for : 100
[input : 2] check for : 111
[input : 2] check for : 112
[input : 1] end of for
[input : 2] check for : 113
[input : 2] check for : 114
[input : 2] check for : 115
[input : 2] check for : 116
[input : 2] check for : 117
[input : 2] check for : 118
[input : 2] check for : 119
[input : 2] check for : 120
[input : 2] check for : 121
[input : 2] check for : 122
[input : 2] check for : 123
[input : 2] check for : 124
[input : 2] check for : 125
[input : 2] check for : 126
[input : 2] check for : 127
[input : 2] check for : 128
[input : 2] check for : 129
[input : 2] check for : 130
[input : 2] check for : 131
[input : 2] check for : 132
[input : 2] check for : 133
[input : 2] check for : 134
[input : 2] check for : 135
[input : 2] check for : 136
[input : 2] check for : 137
[input : 2] check for : 138
[input : 2] check for : 139
[input : 2] check for : 140
[input : 2] check for : 141
[input : 2] check for : 142
[input : 2] check for : 143
[input : 2] check for : 144
[input : 2] check for : 145
[input : 2] check for : 146
[input : 2] check for : 147
[input : 2] check for : 148
[input : 2] check for : 149
[input : 2] check for : 150
[input : 2] check for : 151
[input : 2] check for : 152
[input : 2] check for : 153
[input : 2] check for : 154
[input : 2] check for : 155
[input : 2] check for : 156
[input : 2] check for : 157
[input : 2] check for : 158
[input : 2] check for : 159
[input : 2] check for : 160
[input : 2] check for : 161
[input : 2] check for : 162
[input : 2] check for : 163
[input : 2] check for : 164
[input : 2] check for : 165
[input : 2] check for : 166
[input : 2] check for : 167
[input : 2] check for : 168
[input : 2] check for : 169
[input : 2] check for : 170
[input : 2] check for : 171
[input : 2] check for : 172
[input : 2] check for : 173
[input : 2] check for : 174
[input : 2] check for : 175
[input : 2] check for : 176
[input : 2] check for : 177
[input : 2] check for : 178
[input : 2] check for : 179
[input : 2] check for : 180
[input : 2] check for : 181
[input : 2] check for : 182
[input : 2] check for : 183
[input : 2] check for : 184
[input : 2] check for : 185
[input : 2] check for : 186
[input : 2] check for : 187
[input : 2] check for : 188
[input : 2] check for : 189
[input : 2] check for : 190
[input : 2] check for : 191
[input : 2] check for : 192
[input : 2] check for : 193
[input : 2] check for : 194
[input : 2] check for : 195
[input : 2] check for : 196
[input : 2] check for : 197
[input : 2] check for : 198
[input : 2] check for : 199
[input : 2] check for : 200
[input : 2] end of for
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment