8000 use List instead of Stack · kimmking/postgresql-async@1b49d11 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1b49d11

Browse files
committed
use List instead of Stack
Stack in deprecated scala/scala@44a22d7
1 parent cc58769 commit 1b49d11

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

db-async-common/src/main/scala/com/github/mauricio/async/db/pool/SingleThreadedAsyncObjectPool.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import com.github.mauricio.async.db.util.{Log, Worker}
2222
import java.util.concurrent.atomic.AtomicLong
2323
import java.util.{Timer, TimerTask}
2424

25-
import scala.collection.mutable.{ArrayBuffer, Queue, Stack}
25+
import scala.collection.mutable.{ArrayBuffer, Queue}
2626
import scala.concurrent.{Future, Promise}
2727
import scala.util.{Failure, Success}
2828

@@ -52,7 +52,7 @@ class SingleThreadedAsyncObjectPool[T](
5252
import SingleThreadedAsyncObjectPool.{Counter, log}
5353

5454
private val mainPool = Worker()
55-
private var poolables = new Stack[PoolableHolder[T]]()
55+
private var poolables = List.empty[PoolableHolder[T]]
5656
private val checkouts = new ArrayBuffer[T](configuration.maxObjects)
5757
private val waitQueue = new Queue[Promise[T]]()
5858
private val timer = new Timer("async-object-pool-timer-" + Counter.incrementAndGet(), true)
@@ -171,7 +171,7 @@ class SingleThreadedAsyncObjectPool[T](
171171
*/
172172

173173
private def addBack(item: T, promise: Promise[AsyncObjectPool[T]]) {
174-
this.poolables.push(new PoolableHolder[T](item))
174+
this.poolables ::= new PoolableHolder[T](item)
175175

176176
if (this.waitQueue.nonEmpty) {
177177
this.checkout(this.waitQueue.dequeue())
@@ -226,7 +226,9 @@ class SingleThreadedAsyncObjectPool[T](
226226
case e: Exception => promise.failure(e)
227227
}
228228
} else {
229-
val item = this.poolables.pop().item
229+
val h :: t = this.poolables
230+
this.poolables = t
231+
val item = h.item
230232
this.checkouts += item
231233
promise.success(item)
232234
}

postgresql-async/src/main/scala/com/github/mauricio/async/db/postgresql/column/ArrayDecoder.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package com.github.mauricio.async.db.postgresql.column
1919
import com.github.mauricio.async.db.column.ColumnDecoder
2020
import com.github.mauricio.async.db.postgresql.util.{ArrayStreamingParserDelegate, ArrayStreamingParser}
2121
import scala.collection.IndexedSeq
22-
import scala.collection.mutable.{ArrayBuffer, Stack}
22+
import scala.collection.mutable.ArrayBuffer
2323
import com.github.mauricio.async.db.general.ColumnData
2424
import io.netty.buffer.{Unpooled, ByteBuf}
2525
import java.nio.charset.Charset
@@ -32,12 +32,13 @@ class ArrayDecoder(private val decoder: ColumnDecoder) extends ColumnDecoder {
3232
buffer.readBytes(bytes)
3333
val value = new String(bytes, charset)
3434

35-
val stack = new Stack[ArrayBuffer[Any]]()
35+
var stack = List.empty[ArrayBuffer[Any]]
3636
var current: ArrayBuffer[Any] = null
3737
var result: IndexedSeq[Any] = null
3838
val delegate = new ArrayStreamingParserDelegate {
3939
override def arrayEnded {
40-
result = stack.pop()
40+
result = stack.head
41+
stack = stack.tail
4142
}
4243

4344
override def elementFound(element: String) {
@@ -63,7 +64,7 @@ class ArrayDecoder(private val decoder: ColumnDecoder) extends ColumnDecoder {
6364
case None => {}
6465
}
6566

66-
stack.push(current)
67+
stack ::= current
6768
}
6869
}
6970

0 commit comments

Comments
 (0)
0