Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Stub AsyncTask REPR on the JVM.
Unbusts the ThreadPoolScheduler build again in the async branch.
  • Loading branch information
jnthn committed Apr 19, 2014
1 parent 362e7a4 commit 3c52445
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/vm/jvm/runtime/org/perl6/nqp/sixmodel/REPRRegistry.java
Expand Up @@ -35,6 +35,7 @@
import org.perl6.nqp.sixmodel.reprs.Semaphore;
import org.perl6.nqp.sixmodel.reprs.ConcBlockingQueue;
import org.perl6.nqp.sixmodel.reprs.ConditionVariable;
import org.perl6.nqp.sixmodel.reprs.AsyncTask;

public class REPRRegistry {
private static HashMap<String, Integer> reprIdMap = new HashMap<String, Integer>();
Expand Down Expand Up @@ -94,5 +95,6 @@ private static void addREPR(String name, REPR REPR) {
addREPR("Semaphore", new Semaphore());
addREPR("ConcBlockingQueue", new ConcBlockingQueue());
addREPR("ConditionVariable", new ConditionVariable());
addREPR("AsyncTask", new AsyncTask());
}
}
34 changes: 34 additions & 0 deletions src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/AsyncTask.java
@@ -0,0 +1,34 @@
package org.perl6.nqp.sixmodel.reprs;

import org.perl6.nqp.runtime.ExceptionHandling;
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.REPR;
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.SerializationReader;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.TypeObject;

public class AsyncTask extends REPR {
public SixModelObject type_object_for(ThreadContext tc, SixModelObject HOW) {
STable st = new STable(this, HOW);
SixModelObject obj = new TypeObject();
obj.st = st;
st.WHAT = obj;
return st.WHAT;
}

public SixModelObject allocate(ThreadContext tc, STable st) {
AsyncTaskInstance obj = new AsyncTaskInstance();
obj.st = st;
return obj;
}

public SixModelObject deserialize_stub(ThreadContext tc, STable st) {
throw ExceptionHandling.dieInternal(tc, "Cannot deserialize an async task handle");
}

public void deserialize_finish(ThreadContext tc, STable st,
SerializationReader reader, SixModelObject obj) {
throw ExceptionHandling.dieInternal(tc, "Cannot deserialize an async task handle");
}
}
@@ -0,0 +1,7 @@
package org.perl6.nqp.sixmodel.reprs;

import org.perl6.nqp.sixmodel.SixModelObject;

public class AsyncTaskInstance extends SixModelObject {

}

0 comments on commit 3c52445

Please sign in to comment.