Taking it off-list, since there is zero remaining connection to SQLite now:
> On Feb 16, 2017, at 2:49 PM, Tim Streater <t...@clothears.org.uk> wrote: > > On 16 Feb 2017 at 18:30, James K. Lowden <jklow...@schemamania.org> wrote: > >> On Tue, 14 Feb 2017 17:05:30 -0800 >> Darren Duncan <dar...@darrenduncan.net> wrote: >> >>> There is nothing inherently wrong with threads in principle >> >> What's inherently wrong with threads in principle is that there is no >> logic that describes them, and consequently no compiler to control that >> logic. > > [snip remainder of long whinge about threads] > > Sounds, then, like I'd better eliminate threads from my app. In which case > when the user initiates some action that may take some minutes to complete, > he can just lump it when the GUI becomes unresponsive. CSPs, the actor model, message passing architectures, etc. all give you ways to have concurrent processing without your program explicitly dealing with OS-level threads. > That OK with you? Can I point the user your way when he gives me grief about > it? Or should I just say that no, he can't have a responsive GUI under those > conditions because some guy on the Internet says so? “Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.” Let go your anger. :) (And lest you think I fear threads and that this sword cuts both ways, no: I avoid using threads whenever possible because I *understand* threads.) > I'll just bring my 50 years experience of writing software to the table, > including threaded apps for PDP-11s and VAXes. It's called debugging. Some kinds of debugging are easier than others. Why set yourself up for a much harder problem than necessary by using inherently problematic mechanisms? (Plural, meaning threads and all the synchronization primitives that go along with them, which drag in new problems like deadlocking that you didn’t have before you added mutexes to try and solve the problems you bought by adding that one little ol' thread.) Have you read the Lee paper referenced in the mailing list thread? https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf Threads aren’t just distasteful from an implementation standpoint, they’re *mathematically unsound*. Did you study the ARM assembly language comparison I linked to? How can we expect people to write threaded programs when even a simple integer increment is prone to race conditions and read-modify-write errors? _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users