Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10930 - main/trunk/pym/_emerge
Date: Fri, 04 Jul 2008 21:27:16
Message-Id: E1KEsoB-0008Kp-4g@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-07-04 21:27:10 +0000 (Fri, 04 Jul 2008)
3 New Revision: 10930
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Add a PollConstants class to serve as a layer of indirection for accessing
9 select.POLL* attributes which do not exist on interix. Thanks to grobian
10 for reporting.
11
12
13 Modified: main/trunk/pym/_emerge/__init__.py
14 ===================================================================
15 --- main/trunk/pym/_emerge/__init__.py 2008-07-04 20:57:24 UTC (rev 10929)
16 +++ main/trunk/pym/_emerge/__init__.py 2008-07-04 21:27:10 UTC (rev 10930)
17 @@ -1575,7 +1575,7 @@
18 os.close(slave_fd)
19 files.process = os.fdopen(master_fd, 'r')
20 self.reg_id = self.scheduler.register(files.process.fileno(),
21 - select.POLLIN, self._output_handler)
22 + PollConstants.POLLIN, self._output_handler)
23 self.registered = True
24
25 def _output_handler(self, fd, event):
26 @@ -1974,7 +1974,7 @@
27 os.close(slave_fd)
28 files.ebuild = os.fdopen(master_fd, 'r')
29 self.reg_id = self.scheduler.register(files.ebuild.fileno(),
30 - select.POLLIN, output_handler)
31 + PollConstants.POLLIN, output_handler)
32 self.registered = True
33
34 def _output_handler(self, fd, event):
35 @@ -7019,9 +7019,23 @@
36 (self.blocks - self.blocks_satisfied))
37 return "".join(myoutput)
38
39 -class PollSelectAdapter(object):
40 +class PollConstants(object):
41
42 """
43 + Provides POLL* constants that are equivalent to those from the
44 + select module, for use by PollSelectAdapter.
45 + """
46 +
47 + names = ("POLLIN", "POLLPRI", "POLLOUT", "POLLERR", "POLLHUP", "POLLNVAL")
48 + v = 1
49 + for k in names:
50 + locals()[k] = getattr(select, k, v)
51 + v *= 2
52 + del k, v
53 +
54 +class PollSelectAdapter(PollConstants):
55 +
56 + """
57 Use select to emulate a poll object, for
58 systems that don't support poll().
59 """
60 @@ -7032,14 +7046,15 @@
61
62 def register(self, fd, *args):
63 """
64 - Only select.POLLIN is currently supported!
65 + Only POLLIN is currently supported!
66 """
67 if len(args) > 1:
68 raise TypeError(
69 "register expected at most 2 arguments, got " + \
70 repr(1 + len(args)))
71
72 - eventmask = select.POLLIN | select.POLLPRI | select.POLLOUT
73 + eventmask = PollConstants.POLLIN | \
74 + PollConstants.POLLPRI | PollConstants.POLLOUT
75 if args:
76 eventmask = args[0]
77
78 @@ -7071,7 +7086,7 @@
79 select_events = select.select(*select_args)
80 poll_events = []
81 for fd in select_events[0]:
82 - poll_events.append((fd, select.POLLIN))
83 + poll_events.append((fd, PollConstants.POLLIN))
84 return poll_events
85
86 class SequentialTaskQueue(SlotObject):
87
88 --
89 gentoo-commits@l.g.o mailing list