Experiment with smaller delay for client

This commit is contained in:
Keith Winstein
2011-10-22 15:46:09 -04:00
parent b29e3e9d39
commit 3efb3d2fe3
4 changed files with 11 additions and 3 deletions
+2
View File
@@ -77,6 +77,8 @@ namespace Network {
int fd( void ) { return connection.fd(); } int fd( void ) { return connection.fd(); }
void set_verbose( void ) { sender.set_verbose(); verbose = true; } void set_verbose( void ) { sender.set_verbose(); verbose = true; }
void set_send_delay( int new_delay ) { sender.set_send_delay( new_delay ); }
}; };
} }
+2
View File
@@ -114,6 +114,8 @@ void STMClient::main_init( void )
network = new Network::Transport< Network::UserStream, Terminal::Complete >( blank, local_terminal, network = new Network::Transport< Network::UserStream, Terminal::Complete >( blank, local_terminal,
key.c_str(), ip.c_str(), port ); key.c_str(), ip.c_str(), port );
network->set_send_delay( 1 ); /* minimal delay on outgoing keystrokes */
/* tell server the size of the terminal */ /* tell server the size of the terminal */
network->get_current_state().push_back( Parser::Resize( window_size.ws_col, window_size.ws_row ) ); network->get_current_state().push_back( Parser::Resize( window_size.ws_col, window_size.ws_row ) );
} }
+2 -1
View File
@@ -19,7 +19,8 @@ TransportSender<MyState>::TransportSender( Connection *s_connection, MyState &in
shutdown_in_progress( false ), shutdown_in_progress( false ),
shutdown_tries( 0 ), shutdown_tries( 0 ),
ack_num( 0 ), ack_num( 0 ),
pending_data_ack( false ) pending_data_ack( false ),
SEND_MINDELAY( 15 )
{ {
} }
+5 -2
View File
@@ -22,8 +22,7 @@ namespace Network {
static const int SEND_INTERVAL_MIN = 20; /* ms between frames */ static const int SEND_INTERVAL_MIN = 20; /* ms between frames */
static const int SEND_INTERVAL_MAX = 250; /* ms between frames */ static const int SEND_INTERVAL_MAX = 250; /* ms between frames */
static const int ACK_INTERVAL = 3000; /* ms between empty acks */ static const int ACK_INTERVAL = 3000; /* ms between empty acks */
static const int ACK_DELAY = 20; /* ms before delayed ack */ static const int ACK_DELAY = 100; /* ms before delayed ack */
static const int SEND_MINDELAY = 20; /* ms to collect all input */
static const int SHUTDOWN_RETRIES = 3; /* number of shutdown packets to send before giving up */ static const int SHUTDOWN_RETRIES = 3; /* number of shutdown packets to send before giving up */
/* helper methods for tick() */ /* helper methods for tick() */
@@ -62,6 +61,8 @@ namespace Network {
uint64_t ack_num; uint64_t ack_num;
bool pending_data_ack; bool pending_data_ack;
int SEND_MINDELAY; /* ms to collect all input */
public: public:
/* constructor */ /* constructor */
TransportSender( Connection *s_connection, MyState &initial_state ); TransportSender( Connection *s_connection, MyState &initial_state );
@@ -95,6 +96,8 @@ namespace Network {
bool get_counterparty_shutdown_acknowledged( void ) { return fragmenter.last_ack_sent() == uint64_t(-1); } bool get_counterparty_shutdown_acknowledged( void ) { return fragmenter.last_ack_sent() == uint64_t(-1); }
bool shutdown_ack_timed_out( void ); bool shutdown_ack_timed_out( void );
void set_send_delay( int new_delay ) { SEND_MINDELAY = new_delay; }
/* nonexistent methods to satisfy -Weffc++ */ /* nonexistent methods to satisfy -Weffc++ */
TransportSender( const TransportSender &x ); TransportSender( const TransportSender &x );
TransportSender & operator=( const TransportSender &x ); TransportSender & operator=( const TransportSender &x );