[Twisted-Python] Re: [Twisted-commits] CVS: Twisted/twisted/internet main.py,1.51,1.52 poll.py,1.4,1.5
Tommi Virtanen
tv at twistedmatrix.com
Sun Jan 6 12:22:13 EST 2002
Itamar Shtull-Trauring <itamarst at twistedmatrix.com> writes:
> Update of /cvs/Twisted/twisted/internet
> In directory zaibach:/tmp/cvs-serv23038
>
> Modified Files:
> main.py poll.py
> Log Message:
> made removing selectables at shutdown more generic so that poll-based event loop shutdown will work
>
> diff -b -u -d -r1.51 -r1.52
> --- main.py 25 Dec 2001 13:22:13 -0000 1.51
> +++ main.py 6 Jan 2002 12:22:10 -0000 1.52
> @@ -242,11 +242,8 @@
> log.msg('Select loop terminated.')
>
> finally:
> - for reader in reads.keys():
> - if reads.has_key(reader):
> - del reads[reader]
> - if writes.has_key(reader):
> - del writes[reader]
> + selectables = removeAll()
> + for reader in selectables:
> log.logOwner.own(reader)
> try:
> reader.connectionLost()
> @@ -297,6 +294,17 @@
> if writes.has_key(writer):
> del writes[writer]
>
> +def removeAll():
> + """Remove all readers and writers, and return list of Selectables."""
> + readers = reads.keys()
> + for reader in readers:
> + if reads.has_key(reader):
> + del reads[reader]
> + if writes.has_key(reader):
> + del writes[reader]
> + return readers
> +
> +
> class _Win32Waker(styles.Ephemeral):
> """I am a workaround for the lack of pipes on win32.
What if you have fd 42 that is only a writer, not a reader?
That removeAll() won't process it.
readers = uniq(reads.keys(), writes.keys()) ?
This does not affect the poll as readers and writers are
"united" there.
--
tv@{{hq.yok.utu,havoc,gaeshido}.fi,{debian,wanderer}.org,stonesoft.com}
double a,b=4,c;main(){for(;++a<2e6;c-=(b=-b)/a++);printf("%f\n",c);}
More information about the Twisted-Python
mailing list