@@ -1095,13 +1095,32 @@ def close(self):
1095
1095
self .handle = None
1096
1096
self ._latch .close ()
1097
1097
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
+
1098
1115
def empty (self ):
1099
1116
"""
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.
1101
1121
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.
1105
1124
"""
1106
1125
return self ._latch .empty ()
1107
1126
@@ -1150,7 +1169,10 @@ class Channel(Sender, Receiver):
1150
1169
A channel inherits from :class:`mitogen.core.Sender` and
1151
1170
`mitogen.core.Receiver` to provide bidirectional functionality.
1152
1171
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
+
1154
1176
Channels were an early attempt at syntax sugar. It is always easier to pass
1155
1177
around unidirectional pairs of senders/receivers, even though the syntax is
1156
1178
baroque:
@@ -2385,19 +2407,17 @@ def close(self):
2385
2407
finally :
2386
2408
self ._lock .release ()
2387
2409
2388
- def empty (self ):
2410
+ def size (self ):
2389
2411
"""
2390
- Return :data:`True` if calling :meth:`get` would block .
2412
+ Return the number of items currently buffered .
2391
2413
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`.
2396
2417
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`.
2401
2421
2402
2422
:raises LatchError:
2403
2423
The latch has already been marked closed.
@@ -2406,10 +2426,22 @@ def empty(self):
2406
2426
try :
2407
2427
if self .closed :
2408
2428
raise LatchError ()
2409
- return len (self ._queue ) == 0
2429
+ return len (self ._queue )
2410
2430
finally :
2411
2431
self ._lock .release ()
2412
2432
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
+
2413
2445
def _get_socketpair (self ):
2414
2446
"""
2415
2447
Return an unused socketpair, creating one if none exist.
0 commit comments