commons-continuations


License

License

GroupId

GroupId

com.dongxiguo
ArtifactId

ArtifactId

commons-continuations_2.11
Last Version

Last Version

0.2.2
Release Date

Release Date

Type

Type

jar
Description

Description

commons-continuations
commons-continuations
Project URL

Project URL

https://github.com/Atry/commons-continuations
Project Organization

Project Organization

com.dongxiguo
Source Code Management

Source Code Management

https://github.com/Atry/commons-continuations

Download commons-continuations_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/com.dongxiguo/commons-continuations_2.11/ -->
<dependency>
    <groupId>com.dongxiguo</groupId>
    <artifactId>commons-continuations_2.11</artifactId>
    <version>0.2.2</version>
</dependency>
// https://jarcasting.com/artifacts/com.dongxiguo/commons-continuations_2.11/
implementation 'com.dongxiguo:commons-continuations_2.11:0.2.2'
// https://jarcasting.com/artifacts/com.dongxiguo/commons-continuations_2.11/
implementation ("com.dongxiguo:commons-continuations_2.11:0.2.2")
'com.dongxiguo:commons-continuations_2.11:jar:0.2.2'
<dependency org="com.dongxiguo" name="commons-continuations_2.11" rev="0.2.2">
  <artifact name="commons-continuations_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.dongxiguo', module='commons-continuations_2.11', version='0.2.2')
)
libraryDependencies += "com.dongxiguo" % "commons-continuations_2.11" % "0.2.2"
[com.dongxiguo/commons-continuations_2.11 "0.2.2"]

Dependencies

compile (5)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.0
org.scala-lang.plugins : scala-continuations-library_2.11 jar 1.0.1
org.scala-lang : scala-reflect jar 2.11.0
com.dongxiguo : zero-log_2.11 jar 0.3.5
com.dongxiguo.zero-log : context_2.11 jar 0.3.5

test (1)

Group / Artifact Type Version
com.novocode : junit-interface jar 0.7

Project Modules

There are no modules declared in this project.

commons-continuations is a collection of utilities which is designed to help Scala programmers to work with continuations.

Features

Allow for statement with a suspendable code block.

import com.dongxiguo.commons.continuations.CollectionConverters._
import scala.util.continuations.shiftUnit
val mySeq = Seq("foo", "bar", "baz")
val results = for (element in mySeq.asSuspendable.par) yield {
  shiftUnit("Result from a suspendable expression: " + element)
}

Hang up a continuation

import com.dongxiguo.commons.continuations.Hang
import scala.util.continuations.shift
shift(Hang)

The goto statement

import com.dongxiguo.commons.continuations.Label
val repeatPoint = Label()
doSomething()
repeatePoint.goto() // Infinite loop

Use continuation with NIO2 socket.

See AsynchronousInputStream and SocketWritingQueue.

Repository

If you use Sbt, add following lines to you build.sbt:

libraryDependencies += "com.dongxiguo" %% "commons-continuations" % "0.2.2"

Note that commons-continuations requires Scala version 2.10.x or 2.11.x.

Versions

Version
0.2.2