use of io.servicetalk.context.api.ContextMap in project servicetalk by apple.
the class ContextPreservingSubscriber method onError.
@Override
public final void onError(Throwable t) {
final Thread currentThread = Thread.currentThread();
if (currentThread instanceof ContextMapHolder) {
final ContextMapHolder asyncContextMapHolder = (ContextMapHolder) currentThread;
ContextMap prev = asyncContextMapHolder.context();
try {
asyncContextMapHolder.context(saved);
subscriber.onError(t);
} finally {
asyncContextMapHolder.context(prev);
}
} else {
onErrorSlowPath(t);
}
}
use of io.servicetalk.context.api.ContextMap in project servicetalk by apple.
the class ContextPreservingSubscriber method onComplete.
@Override
public final void onComplete() {
final Thread currentThread = Thread.currentThread();
if (currentThread instanceof ContextMapHolder) {
final ContextMapHolder asyncContextMapHolder = (ContextMapHolder) currentThread;
ContextMap prev = asyncContextMapHolder.context();
try {
asyncContextMapHolder.context(saved);
subscriber.onComplete();
} finally {
asyncContextMapHolder.context(prev);
}
} else {
onCompleteSlowPath();
}
}
use of io.servicetalk.context.api.ContextMap in project servicetalk by apple.
the class ContextPreservingSubscriber method onSubscribe.
@Override
public final void onSubscribe(Subscription s) {
final Thread currentThread = Thread.currentThread();
if (currentThread instanceof ContextMapHolder) {
final ContextMapHolder asyncContextMapHolder = (ContextMapHolder) currentThread;
ContextMap prev = asyncContextMapHolder.context();
try {
asyncContextMapHolder.context(saved);
invokeOnSubscribe(s);
} finally {
asyncContextMapHolder.context(prev);
}
} else {
onSubscribeSlowPath(s);
}
}
use of io.servicetalk.context.api.ContextMap in project servicetalk by apple.
the class ContextPreservingSubscriber method onCompleteSlowPath.
private void onCompleteSlowPath() {
ContextMap prev = CONTEXT_THREAD_LOCAL.get();
try {
CONTEXT_THREAD_LOCAL.set(saved);
subscriber.onComplete();
} finally {
CONTEXT_THREAD_LOCAL.set(prev);
}
}
use of io.servicetalk.context.api.ContextMap in project servicetalk by apple.
the class ContextPreservingSubscriber method onSubscribeSlowPath.
private void onSubscribeSlowPath(Subscription s) {
ContextMap prev = CONTEXT_THREAD_LOCAL.get();
try {
CONTEXT_THREAD_LOCAL.set(saved);
invokeOnSubscribe(s);
} finally {
CONTEXT_THREAD_LOCAL.set(prev);
}
}
Aggregations