io.ray.runtime.actor.LocalModeActorHandle Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ray-runtime Show documentation
Show all versions of ray-runtime Show documentation
ray runtime implementation
The newest version!
package io.ray.runtime.actor;
import io.ray.api.ActorHandle;
import io.ray.api.id.ActorId;
import io.ray.api.id.ObjectId;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.concurrent.atomic.AtomicReference;
/** Implementation of actor handle for local mode. */
public class LocalModeActorHandle implements ActorHandle, Externalizable {
private ActorId actorId;
private AtomicReference previousActorTaskDummyObjectId = new AtomicReference<>();
public LocalModeActorHandle(ActorId actorId, ObjectId previousActorTaskDummyObjectId) {
this.actorId = actorId;
this.previousActorTaskDummyObjectId.set(previousActorTaskDummyObjectId);
}
/** Required by FST. */
public LocalModeActorHandle() {}
@Override
public ActorId getId() {
return actorId;
}
public ObjectId exchangePreviousActorTaskDummyObjectId(ObjectId previousActorTaskDummyObjectId) {
return this.previousActorTaskDummyObjectId.getAndSet(previousActorTaskDummyObjectId);
}
public LocalModeActorHandle copy() {
return new LocalModeActorHandle(this.actorId, this.previousActorTaskDummyObjectId.get());
}
@Override
public synchronized void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(actorId);
out.writeObject(previousActorTaskDummyObjectId.get());
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
actorId = (ActorId) in.readObject();
previousActorTaskDummyObjectId.set((ObjectId) in.readObject());
}
}