=============================== Day 27: Tuesday, April 15, 2014 =============================== 0. Read http://en.wikipedia.org/wiki/Asynchronous_I/O ---- On branch day27, I've changed image.py `(link) `__ to do SQLite saving/loading of images. Look at the changes to server.py on day27-threading `(link) `__ and day27-async `(link) `__. Question -- does the 'add_image' function (lines 35-54) in `image.py `__ need to be protected from concurrent execution in (a) threading and (b) async? If (a) threading is YES and (b) async is YES, choose pink. If (a) threading is YES and (b) async is NO, choose green. If (a) threading is NO and (b) async is YES, choose yellow. If (a) threading is NO and (b) async is NO, choose blue. ---- .. --- .. presentation on no parallel processing, shared process space, non-shared .. process space. .. in web stuff: i/o is the biggest deal. can I find that article on critical .. times? use stuff from NGS course? .. discuss critical sections; global interpreter lock, +=, modules/globals .. none, async (tulip), multithreading, multiprocessing.inside of sqlite-enabled .. imageapp. .. for each approach .. - which ones have shared process space .. - mark where potential critical sections are .. - mark where non-Python locking is needed .. how would you figure this out?