use of com.ibm.dtfj.image.javacore.JCImageRegister in project openj9 by eclipse.
the class ImageProcessBuilder method addImageThread.
/**
* @param Properties with String key and String value
*/
public ImageThread addImageThread(long nativeThreadID, long systemThreadID, Properties properties) throws BuilderFailureException {
try {
ImagePointer pointer = fImageAddressSpace.getPointer(nativeThreadID);
JCImageThread thread = fImageProcess.getImageThread(pointer);
if (thread == null) {
thread = new JCImageThread(pointer);
if (registers != null) {
// Add the registers to the first thread
for (Iterator it = registers.entrySet().iterator(); it.hasNext(); ) {
Map.Entry me = (Map.Entry) it.next();
ImageRegister ir = new JCImageRegister((String) me.getKey(), (Number) me.getValue());
thread.addRegister(ir);
}
registers = null;
}
fImageProcess.addImageThread(thread);
}
for (Iterator it = properties.entrySet().iterator(); it.hasNext(); ) {
Map.Entry me = (Map.Entry) it.next();
thread.addProperty(me.getKey(), me.getValue());
}
if (systemThreadID != IBuilderData.NOT_AVAILABLE) {
pointer = fImageAddressSpace.getPointer(systemThreadID);
thread.setSystemThreadID(pointer);
}
return thread;
} catch (JCInvalidArgumentsException e) {
throw new BuilderFailureException(e);
}
}
Aggregations