> despite the fact that you're not raymond, i'll respond 
> to him via your response for him (how's it feel to be a 
> surrogate ray? :))

I refuse to answer that question because, well, it's kind of weird.

> "I don't think that's what Ray meant. If I understand 
> correctly, his distinction was that the programmer can 
> place multiple variable accesses in a single scope within 
> a single CFLOCK - and can structure his code accordingly 
> - while the stupid computer can't do that:
> 
> . begin automatic lock ...
> <cfset Session.foo = "bar">
> . end automatic lock ...
> . begin automatic lock ...
> <cfset Session.foo2 = "baz">
> . end automatic lock ...
> 
> vs 
> 
> <cflock scope="session" ...>
>       <cfset Session.foo = "bar">
>       <cfset Session.foo2 = "baz">
> </cflock>"
> 
> of course, that's the point of a well written 
> compiler/interpreter. it can figure out that it's SUPPOSED 
> to do the second. that's what makes it well written.

Of course, though, there are limitations to what a well-written compiler or
interpreter can do. While my specific example, chosen primarily for its
simplicity, may be easy to work into the CF Server's interpretational
abilities, the fact is that anything more complex than that could be
difficult. For example, I can look at an individual script and make the
determination that, for this script, I can copy some set of variables from
persistent to local scope, including some that may not even be used based on
the evaluation of a condition within the page, within a single CFLOCK, while
if those variables are currently scattered throughout the page, the
interpreter may not be able to make that decision.

Even in environments which do take care of things like this automatically,
by default, those environments provide a way to manually override the
default. For example, within the database, you can use isolation levels and
locking hints to override the default locking. Within Java and other
languages which perform automatic garbage collection, the programmer can
write code to affect the behavior of that garbage collection.

So, you may be able to criticize CF for not providing that default behavior,
but you can't follow the assumption that if it did, you wouldn't have to
worry about the issue any more.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
voice: (202) 797-5496
fax: (202) 797-5444

______________________________________________________________________
This list and all House of Fusion resources hosted by CFHosting.com. The place for 
dependable ColdFusion Hosting.
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/cf-talk@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to