Skip to content

Commit c8c9af7

Browse files
akarnokdakarnokd
akarnokd
authored and
akarnokd
committed
Adapted schedulers.
1 parent ad5e4a3 commit c8c9af7

36 files changed

+2945
-54
lines changed

build.gradle

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ dependencies {
2727
testCompile 'org.mockito:mockito-core:1.10.19'
2828
}
2929

30+
javadoc {
31+
failOnError = false
32+
}
33+
3034
task sourcesJar(type: Jar, dependsOn: classes) {
3135
classifier = 'sources'
3236
from sourceSets.main.allSource
+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package rxjf.annotations;
2+
3+
/*
4+
* Copyright (C) 2010 The Guava Authors
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*
18+
* Originally from https://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/annotations/Beta.java
19+
*/
20+
21+
import java.lang.annotation.Documented;
22+
import java.lang.annotation.ElementType;
23+
import java.lang.annotation.Retention;
24+
import java.lang.annotation.RetentionPolicy;
25+
import java.lang.annotation.Target;
26+
27+
/**
28+
* Signifies that a public API (public class, method or field) is subject to
29+
* incompatible changes, or even removal, in a future release. An API bearing
30+
* this annotation is exempt from any compatibility guarantees made by its
31+
* containing library. Note that the presence of this annotation implies nothing
32+
* about the quality or performance of the API in question, only the fact that
33+
* it is not "API-frozen."
34+
*
35+
* <p>It is generally safe for <i>applications</i> to depend on beta APIs, at
36+
* the cost of some extra work during upgrades. However it is generally
37+
* inadvisable for <i>libraries</i> (which get included on users' CLASSPATHs,
38+
* outside the library developers' control) to do so.
39+
*
40+
**/
41+
@Retention(RetentionPolicy.CLASS)
42+
@Target({
43+
ElementType.ANNOTATION_TYPE,
44+
ElementType.CONSTRUCTOR,
45+
ElementType.FIELD,
46+
ElementType.METHOD,
47+
ElementType.TYPE })
48+
@Documented
49+
@Beta
50+
public @interface Beta {
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package rxjf.annotations;
2+
3+
/*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
* Inspired from https://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/annotations/Beta.java
17+
*/
18+
19+
import java.lang.annotation.Documented;
20+
import java.lang.annotation.ElementType;
21+
import java.lang.annotation.Retention;
22+
import java.lang.annotation.RetentionPolicy;
23+
import java.lang.annotation.Target;
24+
25+
/**
26+
* Signifies that a public API (public class, method or field) is will almost certainly
27+
* be changed or removed in a future release. An API bearing this annotation should not
28+
* be used or relied upon in production code. APIs exposed with this annotation exist
29+
* to allow broad testing and feedback on experimental features.
30+
**/
31+
@Retention(RetentionPolicy.CLASS)
32+
@Target({
33+
ElementType.ANNOTATION_TYPE,
34+
ElementType.CONSTRUCTOR,
35+
ElementType.FIELD,
36+
ElementType.METHOD,
37+
ElementType.TYPE })
38+
@Documented
39+
@Experimental
40+
public @interface Experimental {
41+
}

src/main/java/rxjf/cancellables/BooleanCancellable.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import static rxjf.internal.UnsafeAccess.UNSAFE;
2020
import rxjf.Flow.Subscription;
21+
import rxjf.internal.UnsafeAccess;
2122

2223
/**
2324
*
@@ -30,13 +31,10 @@ public void run() {
3031
}
3132
};
3233
volatile Runnable state;
33-
static final long STATE;
34-
static {
35-
try {
36-
STATE = UNSAFE.objectFieldOffset(BooleanCancellable.class.getDeclaredField("state"));
37-
} catch (NoSuchFieldException ex) {
38-
throw new InternalError(ex);
39-
}
34+
static final long STATE = UnsafeAccess.addressOf(BooleanCancellable.class, "state");
35+
static final Runnable EMPTY = () -> { };
36+
public BooleanCancellable() {
37+
UNSAFE.putOrderedObject(this, STATE, EMPTY);
4038
}
4139
public BooleanCancellable(Runnable run) {
4240
if (run == null) {

src/main/java/rxjf/cancellables/MultipleAssignmentCancellable.java

+2-8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package rxjf.cancellables;
1818

1919
import static rxjf.internal.UnsafeAccess.*;
20+
import rxjf.internal.UnsafeAccess;
2021

2122
/**
2223
*
@@ -33,15 +34,8 @@ public boolean isCancelled() {
3334
return true;
3435
}
3536
};
36-
static final long STATE;
37-
static {
38-
try {
39-
STATE = UNSAFE.objectFieldOffset(MultipleAssignmentCancellable.class.getDeclaredField("state"));
40-
} catch (NoSuchFieldException ex) {
41-
throw new InternalError(ex);
42-
}
43-
}
4437
volatile Cancellable state;
38+
static final long STATE = UnsafeAccess.addressOf(MultipleAssignmentCancellable.class, "state");
4539
public MultipleAssignmentCancellable() {
4640

4741
}

src/main/java/rxjf/cancellables/SerialCancellable.java

+4-8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package rxjf.cancellables;
1818

1919
import static rxjf.internal.UnsafeAccess.*;
20+
import rxjf.internal.UnsafeAccess;
2021

2122
/**
2223
*
@@ -33,15 +34,10 @@ public boolean isCancelled() {
3334
return true;
3435
}
3536
};
36-
static final long STATE;
37-
static {
38-
try {
39-
STATE = UNSAFE.objectFieldOffset(SerialCancellable.class.getDeclaredField("state"));
40-
} catch (NoSuchFieldException ex) {
41-
throw new InternalError(ex);
42-
}
43-
}
37+
4438
volatile Cancellable state;
39+
static final long STATE = UnsafeAccess.addressOf(SerialCancellable.class, "state");
40+
4541
public SerialCancellable() {
4642

4743
}

0 commit comments

Comments
 (0)