[Swift-commit] r3685 - trunk/src/org/griphyn/vdl/karajan/lib
noreply at svn.ci.uchicago.edu
noreply at svn.ci.uchicago.edu
Sun Oct 17 21:46:15 CDT 2010
Author: hategan
Date: 2010-10-17 21:46:15 -0500 (Sun, 17 Oct 2010)
New Revision: 3685
Modified:
trunk/src/org/griphyn/vdl/karajan/lib/SetFieldValue.java
Log:
attempt to fix deadlock
Modified: trunk/src/org/griphyn/vdl/karajan/lib/SetFieldValue.java
===================================================================
--- trunk/src/org/griphyn/vdl/karajan/lib/SetFieldValue.java 2010-10-17 19:44:22 UTC (rev 3684)
+++ trunk/src/org/griphyn/vdl/karajan/lib/SetFieldValue.java 2010-10-18 02:46:15 UTC (rev 3685)
@@ -33,22 +33,24 @@
log(leaf, value);
- synchronized (var.getRoot()) {
// TODO want to do a type check here, for runtime type checking
// and pull out the appropriate internal value from value if it
// is a DSHandle. There is no need (I think? maybe numerical casting?)
// for type conversion here; but would be useful to have
// type checking.
- synchronized (value.getRoot()) {
- if (!value.isClosed()) {
- throw new FutureNotYetAvailable(addFutureListener(stack, value));
- }
- deepCopy(leaf, value, stack);
+ synchronized (value.getRoot()) {
+ if (!value.isClosed()) {
+ throw new FutureNotYetAvailable(addFutureListener(stack, value));
}
+ }
+ synchronized (var.getRoot()) {
+ deepCopy(leaf, value, stack);
+
if (var.getParent() != null && var.getParent().getType().isArray()) {
markAsAvailable(stack, leaf.getParent(), leaf.getPathFromRoot().getLast());
}
}
+
return null;
}
catch (FutureNotYetAvailable fnya) {
More information about the Swift-commit
mailing list