Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitebf86dd

Browse files
author
Alex Belozierov
committed
- QosFifoQueue refactoring
1 parent2e5cfcc commitebf86dd

File tree

2 files changed

+5
-18
lines changed

2 files changed

+5
-18
lines changed

‎PosixDispatch/ThreadPool/QosThreadPool/PQosThreadPool+QosFifoQueue.swift‎

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,39 +12,26 @@ extension PQosThreadPool {
1212

1313
privatetypealiasQueue=FifoQueue<T>
1414
privateletqueues= UnsafeMutablePointer<Queue>.allocate(capacity:4)
15-
privatevarcount=0
1615

1716
init(){
1817
letqueues=(0..<4).map{ _inQueue()}
1918
self.queues.initialize(from: queues, count:4)
2019
}
2120

2221
@inlinablefunc push(_ item:T, qos:Qos){
23-
count+=1
2422
queues[qos.rawValue].push(item)
2523
}
2624

2725
@inlinablefunc push(_ items:[T], qos:Qos){
28-
count+= items.count
2926
queues[qos.rawValue].push(items)
3027
}
3128

32-
@discardableResultfunc pop()->T?{
33-
if count==0{returnnil}
34-
foriin0..<4{
35-
guardlet item=queues[i].pop()else{continue}
36-
count-=1
37-
return item
38-
}
39-
returnnil
29+
@inlinablefunc pop(qos:Qos)->T?{
30+
returnqueues[qos.rawValue].pop()
4031
}
4132

42-
@inlinablevarfirstQos:Qos?{
43-
if count==0{returnnil}
44-
foriin0..<4wherequeues[i].first!=nil{
45-
returnQos(rawValue: i)
46-
}
47-
returnnil
33+
varfirstQos:Qos?{
34+
return(0..<4).first{ !queues[$0].isEmpty}.flatMap(Qos.init)
4835
}
4936

5037
deinit{

‎PosixDispatch/ThreadPool/QosThreadPool/PQosThreadPool+RunLoopState.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extension PQosThreadPool {
2323
cancelPerfom()
2424
returnnil
2525
}
26-
returnperfromNext(qos: qos)? poolState.queue.pop():nil
26+
returnperfromNext(qos: qos)? poolState.queue.pop(qos: qos):nil
2727
}
2828

2929
privatefunc perfromNext(qos:Qos)->Bool{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp