try
{
ValueUpdateRequest request = updateValueQueueRequest.take();
try
{
Context coSimCtxt = new ClassContext(coSimLocation, "SimulationInterface", interpreter.initialContext, request.value.classDef);
coSimCtxt.setThreadState(null, request.value.cpu);
request.value.value.set(coSimLocation, request.newValue, coSimCtxt);
if (request.value.value instanceof TransactionValue)
{
TransactionValue.commitOne(BasicSchedulableThread.getThread(Thread.currentThread()).getId());