Revision: 14434
Author: adrian.chadd
Date: Tue Feb 23 19:43:20 2010
Log: Edited wiki page through web user interface.
http://code.google.com/p/lusca-cache/source/detail?r=14434
Modified:
/wiki/ProjectAsyncReadCopy.wiki
=======================================
--- /wiki/ProjectAsyncReadCopy.wiki Tue Feb 23 19:39:38 2010
+++ /wiki/ProjectAsyncReadCopy.wiki Tue Feb 23 19:43:20 2010
@@ -33,6 +33,14 @@
A few of the callbacks will call storeClientComplete() to check whether
they need to be freed, and then abort the function if the store client
isn't active. I'm not entirely sure why a callback will be called on a
in-progress but not-active callback and this requires further
investigation. (In reality, I've forgotten why I wrote this in the past and
need to fully map out what's going on - then comment things! - before I'm
satisfied with it.)
+*note* ok, this is why:
+
+ * the store IO callback is called when a store io file is closed or
there's an IO error (and thus an implicit close)
+ * in the past, the callback may not be called because the store client
may have already been freed
+ * but now the sio isn't freed' until its inactive and all pending events
are completed; they're jut marked !active
+ * but the store client now hangs around a bit longer; but the callback
is still being freed
+ * and thus if it is, but it's now marked !active, the callback shouldn't
finish being run and should be freed if possible
+
Mapping out all of the possible interactions with store client and the
storeIOState would be very, very helpful in this.
storeClientComplete() shouldn't do the checks AND free things. They should
be separated out for clarity.
--
You received this message because you are subscribed to the Google Groups
"lusca-commit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/lusca-commit?hl=en.