synchronized (map) {
if (map.containsKey(variableName)) {
BiVariable bv = map.getVariable((RubyObject)container.getProvider().getRuntime().getTopSelf(), variableName);
bv.setRubyObject(value);
} else {
InstanceVariable iv = new InstanceVariable(obj, variableName, value);
map.update(variableName, iv);
}
}
return obj.getInstanceVariables().setInstanceVariable(variableName, value);
}