Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r14185 - main/trunk/pym/_emerge
Date: Sat, 05 Sep 2009 01:26:42
Message-Id: E1Mjk33-0007QP-2P@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-09-05 01:26:36 +0000 (Sat, 05 Sep 2009)
3 New Revision: 14185
4
5 Modified:
6 main/trunk/pym/_emerge/PollScheduler.py
7 Log:
8 Bug #282808 - Handle a potential KeyError inside PollScheduler._poll_loop()
9 when _poll_event_queue contains an event for a file descriptor that has
10 already been unregistered.
11
12
13 Modified: main/trunk/pym/_emerge/PollScheduler.py
14 ===================================================================
15 --- main/trunk/pym/_emerge/PollScheduler.py 2009-09-04 23:18:40 UTC (rev 14184)
16 +++ main/trunk/pym/_emerge/PollScheduler.py 2009-09-05 01:26:36 UTC (rev 14185)
17 @@ -123,7 +123,14 @@
18 try:
19 while event_handlers:
20 f, event = self._next_poll_event()
21 - handler, reg_id = event_handlers[f]
22 + try:
23 + handler, reg_id = event_handlers[f]
24 + except KeyError:
25 + # This means unregister was called for a file descriptor
26 + # that still had a pending event in _poll_event_queue.
27 + # Since unregister has been called, we should assume that
28 + # the event can be safely ignored.
29 + continue
30 handler(f, event)
31 event_handled = True
32 except StopIteration: