markusthoemmes commented on a change in pull request #2795: enable concurrent
activation processing
URL:
https://github.com/apache/incubator-openwhisk/pull/2795#discussion_r189563046
##########
File path:
core/invoker/src/main/scala/whisk/core/containerpool/ContainerProxy.scala
##########
@@ -53,14 +52,24 @@ case object Paused extends ContainerState
case object Removing extends ContainerState
// Data
-sealed abstract class ContainerData(val lastUsed: Instant)
+sealed abstract class ContainerData(val lastUsed: Instant, val
activeActivationCount: Int = 0)
case class NoData() extends ContainerData(Instant.EPOCH)
-case class PreWarmedData(container: Container, kind: String, memoryLimit:
ByteSize) extends ContainerData(Instant.EPOCH)
+case class PreWarmedData(container: Container,
+ kind: String,
+ memoryLimit: ByteSize,
+ override val activeActivationCount: Int = 0)
+ extends ContainerData(Instant.EPOCH)
case class WarmedData(container: Container,
invocationNamespace: EntityName,
action: ExecutableWhiskAction,
- override val lastUsed: Instant)
- extends ContainerData(lastUsed)
+ override val lastUsed: Instant,
+ override val activeActivationCount: Int = 0)
+ extends ContainerData(lastUsed) {
+ def incrementActive: WarmedData =
+ WarmedData(container, invocationNamespace, action, Instant.now,
activeActivationCount + 1)
Review comment:
`case class`es always have a `copy` method. This is equal to:
```scala
copy(activeActivationCount = activeActivationCount + 1)
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services