@@ -1095,13 +1095,32 @@ def close(self):
10951095 self .handle = None
10961096 self ._latch .close ()
10971097
1098+ def size (self ):
1099+ """
1100+ Return the number of items currently buffered.
1101+
1102+ As with :class:`Queue.Queue`, `0` may be returned even though a
1103+ subsequent call to :meth:`get` will succeed, since a message may be
1104+ posted at any moment between :meth:`size` and :meth:`get`.
1105+
1106+ As with :class:`Queue.Queue`, `>0` may be returned even though a
1107+ subsequent call to :meth:`get` will block, since another waiting thread
1108+ may be woken at any moment between :meth:`size` and :meth:`get`.
1109+
1110+ :raises LatchError:
1111+ The underlying latch has already been marked closed.
1112+ """
1113+ return self ._latch .size ()
1114+
10981115 def empty (self ):
10991116 """
1100- Return :data:`True` if calling :meth:`get` would block.
1117+ Return `size() == 0`.
1118+
1119+ .. deprecated:: 0.2.8
1120+ Use :meth:`size` instead.
11011121
1102- As with :class:`Queue.Queue`, :data:`True` may be returned even though
1103- a subsequent call to :meth:`get` will succeed, since a message may be
1104- posted at any moment between :meth:`empty` and :meth:`get`.
1122+ :raises LatchError:
1123+ The latch has already been marked closed.
11051124 """
11061125 return self ._latch .empty ()
11071126
@@ -1150,7 +1169,10 @@ class Channel(Sender, Receiver):
11501169 A channel inherits from :class:`mitogen.core.Sender` and
11511170 `mitogen.core.Receiver` to provide bidirectional functionality.
11521171
1153- This class is incomplete and obsolete, it will be removed in Mitogen 0.3.
1172+ .. deprecated:: 0.2.0
1173+ This class is incomplete and obsolete, it will be removed in Mitogen
1174+ 0.3.
1175+
11541176 Channels were an early attempt at syntax sugar. It is always easier to pass
11551177 around unidirectional pairs of senders/receivers, even though the syntax is
11561178 baroque:
@@ -2385,19 +2407,17 @@ def close(self):
23852407 finally :
23862408 self ._lock .release ()
23872409
2388- def empty (self ):
2410+ def size (self ):
23892411 """
2390- Return :data:`True` if calling :meth:`get` would block .
2412+ Return the number of items currently buffered .
23912413
2392- As with :class:`Queue.Queue`, :data:`True` may be returned even
2393- though a subsequent call to :meth:`get` will succeed, since a
2394- message may be posted at any moment between :meth:`empty` and
2395- :meth:`get`.
2414+ As with :class:`Queue.Queue`, `0` may be returned even though a
2415+ subsequent call to :meth:`get` will succeed, since a message may be
2416+ posted at any moment between :meth:`size` and :meth:`get`.
23962417
2397- As with :class:`Queue.Queue`, :data:`False` may be returned even
2398- though a subsequent call to :meth:`get` will block, since another
2399- waiting thread may be woken at any moment between :meth:`empty` and
2400- :meth:`get`.
2418+ As with :class:`Queue.Queue`, `>0` may be returned even though a
2419+ subsequent call to :meth:`get` will block, since another waiting thread
2420+ may be woken at any moment between :meth:`size` and :meth:`get`.
24012421
24022422 :raises LatchError:
24032423 The latch has already been marked closed.
@@ -2406,10 +2426,22 @@ def empty(self):
24062426 try :
24072427 if self .closed :
24082428 raise LatchError ()
2409- return len (self ._queue ) == 0
2429+ return len (self ._queue )
24102430 finally :
24112431 self ._lock .release ()
24122432
2433+ def empty (self ):
2434+ """
2435+ Return `size() == 0`.
2436+
2437+ .. deprecated:: 0.2.8
2438+ Use :meth:`size` instead.
2439+
2440+ :raises LatchError:
2441+ The latch has already been marked closed.
2442+ """
2443+ return self .size () == 0
2444+
24132445 def _get_socketpair (self ):
24142446 """
24152447 Return an unused socketpair, creating one if none exist.
0 commit comments