Path: csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Marko Rauhamaa Newsgroups: comp.lang.python Subject: Re: select.poll and ppoll Date: Sun, 25 Oct 2015 21:21:48 +0200 Organization: A noiseless patient Spider Lines: 17 Message-ID: <87pp02da9f.fsf@elektro.pacujo.net> References: <56287672$0$11117$c3e8da3@news.astraweb.com> <87eggnqhgq.fsf@elektro.pacujo.net> <562cbd56$0$1598$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="b7cb1518d23ec19d482dcc9c31d30fdd"; logging-data="19176"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19A4nFd/tmb+nbaMwMIjoEf" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:pRiQEkFnSXSAVyfEAOI+h/K4GKg= sha1:X1+JkB2btIqWVYvWGf34AIW0Fqg= Xref: csiph.com comp.lang.python:97951 Steven D'Aprano : > On Thursday 22 October 2015 22:18, Marko Rauhamaa wrote: >> The standard, classic way to solve the race condition is to replace >> the "signaled" flag with an internal pipe. The signal handler writes >> a byte into the pipe and select.poll() wakes up when the pipe becomes >> readable. IOW, ppoll() and pselect() are not needed. > > [...] > > I will discuss with my colleague and see if this solves his problem. Note also that "newer" Linux kernels (2.6.25 and up) have a file descriptor type, signalfd, that simplifies the idiom slightly. Marko