twisted.internet.tcp._IFileDescriptorReservation(Interface) interface documentationtwisted.internet.tcp
(View In Hierarchy)
Known implementations: twisted.internet.tcp._FileDescriptorReservation, twisted.internet.tcp._NullFileDescriptorReservation
An open file that represents an emergency reservation in the process' 
file descriptor table.  If Port encounters 
EMFILE on accept(2), it can close this file 
descriptor, retry the accept so that the incoming connection 
occupies this file descriptor's space, and then close that connection and 
reopen this one.
Calling _IFileDescriptorReservation.reserve
attempts to open the reserve file descriptor if it is not already open. _IFileDescriptorReservation.available
returns True
if the underlying file is open and its descriptor claimed.
_IFileDescriptorReservation
instances are context managers; entering them releases the underlying file 
descriptor, while exiting them attempts to reacquire it.  The block can 
take advantage of the free slot in the process' file descriptor table 
accept and close a client connection.
Because another thread might open a file descriptor between the time the
context manager is entered and the time accept is called, 
opening the reserve descriptor is best-effort only.
| Method | available | Is the reservation available? | 
| Method | reserve | Attempt to open the reserved file descriptor; if this fails because of EMFILE, internal state is reset so that another reservation 
attempt can be made. | 
| Method | __enter__ | Release the underlying file descriptor so that code within the context manager can open a new file. | 
| Method | __exit__ | Attempt to re-open the reserved file descriptor.  See reservefor caveats. | 
Release the underlying file descriptor so that code within the context manager can open a new file.
Attempt to re-open the reserved file descriptor.  See reserve
for caveats.
| Parameters | excType | See object.__exit__ | 
| excValue | See object.__exit__ | |
| traceback | See object.__exit__ |