Some minor optimizations
This commit is contained in:
		
							parent
							
								
									03a0cec60e
								
							
						
					
					
						commit
						05f834b47d
					
				@ -9,7 +9,6 @@
 | 
				
			|||||||
#include "../music/MusicBotManager.h"
 | 
					#include "../music/MusicBotManager.h"
 | 
				
			||||||
#include "../client/music/MusicClient.h"
 | 
					#include "../client/music/MusicClient.h"
 | 
				
			||||||
#include "../client/voice/VoiceClient.h"
 | 
					#include "../client/voice/VoiceClient.h"
 | 
				
			||||||
#include "./ConnectedClient.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace ts;
 | 
					using namespace ts;
 | 
				
			||||||
using namespace ts::server;
 | 
					using namespace ts::server;
 | 
				
			||||||
 | 
				
			|||||||
@ -355,8 +355,9 @@ void QueryClient::handle_event_write(int fd, short, void *ptr_client) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The +1 to identify the syscall */
 | 
				
			||||||
 | 
					constexpr static auto kReadBufferLength{1024 *  + 1};
 | 
				
			||||||
void QueryClient::handle_event_read(int fd, short, void *ptr_client) {
 | 
					void QueryClient::handle_event_read(int fd, short, void *ptr_client) {
 | 
				
			||||||
    static const size_t kReadBufferLength = 1024 * 8;
 | 
					 | 
				
			||||||
    uint8_t buffer[kReadBufferLength];
 | 
					    uint8_t buffer[kReadBufferLength];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto client = (QueryClient*) ptr_client;
 | 
					    auto client = (QueryClient*) ptr_client;
 | 
				
			||||||
@ -364,7 +365,7 @@ void QueryClient::handle_event_read(int fd, short, void *ptr_client) {
 | 
				
			|||||||
    auto length = read(fd, buffer, kReadBufferLength);
 | 
					    auto length = read(fd, buffer, kReadBufferLength);
 | 
				
			||||||
    if(length <= 0) {
 | 
					    if(length <= 0) {
 | 
				
			||||||
        /* error handling */
 | 
					        /* error handling */
 | 
				
			||||||
        if(length == -1 && errno == EAGAIN) {
 | 
					        if(length < 0 && errno == EAGAIN) {
 | 
				
			||||||
            /* Nothing to read */
 | 
					            /* Nothing to read */
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -322,9 +322,15 @@ bool PacketEncoder::pop_write_buffer(protocol::OutgoingServerPacket *&result) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void PacketEncoder::reenqueue_failed_buffer(protocol::OutgoingServerPacket *packet) {
 | 
					void PacketEncoder::reenqueue_failed_buffer(protocol::OutgoingServerPacket *packet) {
 | 
				
			||||||
    std::lock_guard wlock{this->write_queue_mutex};
 | 
					    std::lock_guard wlock{this->write_queue_mutex};
 | 
				
			||||||
 | 
					    if(packet->next || &packet->next == this->send_queue_tail || &packet->next == this->encrypt_queue_tail) {
 | 
				
			||||||
 | 
					        /* packets seemed to gotten reenqueued already */
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(!this->send_queue_head) {
 | 
					    if(!this->send_queue_head) {
 | 
				
			||||||
        this->send_queue_tail = &packet->next;
 | 
					        this->send_queue_tail = &packet->next;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    packet->next = this->send_queue_head;
 | 
					    packet->next = this->send_queue_head;
 | 
				
			||||||
    this->send_queue_head = packet;
 | 
					    this->send_queue_head = packet;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -62,17 +62,17 @@ void WebClient::handleMessageWrite(int fd, short, void *ptr_client) {
 | 
				
			|||||||
        event_add(client->writeEvent, nullptr);
 | 
					        event_add(client->writeEvent, nullptr);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The +2 to identify the syscall */
 | 
				
			||||||
 | 
					constexpr static auto kReadBufferSize{1024 * 4 + 2};
 | 
				
			||||||
void WebClient::handleMessageRead(int fd, short, void *ptr_client) {
 | 
					void WebClient::handleMessageRead(int fd, short, void *ptr_client) {
 | 
				
			||||||
    auto client = dynamic_pointer_cast<WebClient>(((WebClient*) ptr_client)->ref());
 | 
					    auto client = dynamic_pointer_cast<WebClient>(((WebClient*) ptr_client)->ref());
 | 
				
			||||||
    assert(client);
 | 
					    assert(client);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    size_t buffer_length = 1024 * 4;
 | 
					    uint8_t buffer[kReadBufferSize];
 | 
				
			||||||
    uint8_t buffer[buffer_length];
 | 
					    auto length = recv(fd, buffer, kReadBufferSize, MSG_NOSIGNAL | MSG_DONTWAIT);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    auto length = recv(fd, buffer, buffer_length, MSG_NOSIGNAL | MSG_DONTWAIT);
 | 
					 | 
				
			||||||
    if(length <= 0) {
 | 
					    if(length <= 0) {
 | 
				
			||||||
        /* error handling "slow path" */
 | 
					        /* error handling "slow path" */
 | 
				
			||||||
        if(length == 0 && errno == EAGAIN) {
 | 
					        if(length < 0 && errno == EAGAIN) {
 | 
				
			||||||
            /* We've currently no data queued */
 | 
					            /* We've currently no data queued */
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user