Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed3a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.012 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'example:': 0.03; 'model,': 0.05; 'strict': 0.07; 'classes.': 0.09; 'naturally': 0.09; 'cc:addr:python-list': 0.11; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'models,': 0.16; 'order)': 0.16; 'subject:which': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'cc:addr:python.org': 0.22; 'necessary.': 0.24; 'cc:2**0': 0.24; 'order.': 0.26; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; 'am,': 0.29; '(like': 0.30; 'message-id:@mail.gmail.com': 0.30; 'cases': 0.33; 'problem': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'subject:?': 0.36; 'two': 0.37; 'sometimes': 0.38; 'anything': 0.39; '12,': 0.39; 'how': 0.40; 'different': 0.65; 'taking': 0.65; 'spot': 0.65; 'due': 0.66; 'mar': 0.68; 'acquiring': 0.84; 'avoid.': 0.84; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=gk/akVixxn30xk7vGa3XrCF+26TDP+WqAZgHyatIdQc=; b=ViArz0UH9GqOsVW9CFrQseDuAQrdVzjh7ToLSNnhDQEJjUwm4gNcTgZBIBSFfX3XGT nGEkRm0Z0kymjOAVBNpaAG//lYEwoW2WsxyWraFk32WzSzaexuI52xe8/VnkMM4BBzn2 vIJo9bDqGb093myoS2OD/OrGQv6SZg+KH3r9x+XGkkd3PHuqhyUMbHYVOTTKDbmCt2lQ 8pKbdtcBwN1EfAALonNnlXjBDDEdMtbKE0PZ97SrmQWyRWup5x9+WIUnBU9rFW384xCd p51fZOLuPb0IOdSQt/E8VfpvwSD6MCYr29dE1pGzjjBNw9tbrc9qmyvNQqN7lY+FTaZy lvvA== MIME-Version: 1.0 X-Received: by 10.66.27.202 with SMTP id v10mr968379pag.127.1394581118211; Tue, 11 Mar 2014 16:38:38 -0700 (PDT) In-Reply-To: <87wqg0mihv.fsf@elektro.pacujo.net> References: <531E22DF.7030709@simplistix.co.uk> <1733040935416225908.878896sturla.molden-gmail.com@news.gmane.org> <372076480416251284.821607sturla.molden-gmail.com@news.gmane.org> <877g80nzdx.fsf@elektro.pacujo.net> <87wqg0mihv.fsf@elektro.pacujo.net> Date: Wed, 12 Mar 2014 10:38:38 +1100 Subject: Re: which async framework? From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 17 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1394581121 news.xs4all.nl 2936 [2001:888:2000:d::a6]:56897 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:68251 On Wed, Mar 12, 2014 at 10:18 AM, Marko Rauhamaa wrote: > Chris Angelico : > >> What corner cases are there with threads that you don't have with >> anything else? > > There are numerous. Here's one example: deadlocks due to two threads > taking locks in a different order. The problem crops up naturally with > two intercommunicating classes. It can sometimes be very difficult to > spot or avoid. Yep. Now how is that not a problem when you use some other model, like an event loop? The standard methods of avoiding deadlocks (like acquiring locks in strict order) work exactly the same for all models, and are just as necessary. ChrisA