Index: chrome/test/chromedriver/net/port_server.h |
diff --git a/chrome/test/chromedriver/net/port_server.h b/chrome/test/chromedriver/net/port_server.h |
index 3d32950373f5b1081826c4895857e0062f96a64e..daa01e9c588a9e0d36ff6efb7e8f2f1482cc19cb 100644 |
--- a/chrome/test/chromedriver/net/port_server.h |
+++ b/chrome/test/chromedriver/net/port_server.h |
@@ -50,7 +50,9 @@ class PortServer { |
// Manages reservation of a block of local ports. |
class PortManager { |
public: |
- PortManager(int min_port, int max_port); |
+ // Since we cannot remove forwarded adb ports on older SDKs, |
+ // maintain a pool of forwarded ports for reuse when |reuse| is true |
+ PortManager(int min_port, int max_port, bool reuse); |
~PortManager(); |
Status ReservePort(int* port, scoped_ptr<PortReservation>* reservation); |
@@ -58,11 +60,12 @@ class PortManager { |
private: |
void ReleasePort(int port); |
- base::Lock taken_lock_; |
+ base::Lock lock_; |
std::set<int> taken_; |
- |
+ std::list<int> unused_forwarded_port_; |
int min_port_; |
int max_port_; |
+ bool reuse_; |
}; |
#endif // CHROME_TEST_CHROMEDRIVER_NET_PORT_SERVER_H_ |