Some minor optimizations
This commit is contained in:
		
							parent
							
								
									03a0cec60e
								
							
						
					
					
						commit
						05f834b47d
					
				@ -9,7 +9,6 @@
 | 
			
		||||
#include "../music/MusicBotManager.h"
 | 
			
		||||
#include "../client/music/MusicClient.h"
 | 
			
		||||
#include "../client/voice/VoiceClient.h"
 | 
			
		||||
#include "./ConnectedClient.h"
 | 
			
		||||
 | 
			
		||||
using namespace ts;
 | 
			
		||||
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) {
 | 
			
		||||
    static const size_t kReadBufferLength = 1024 * 8;
 | 
			
		||||
    uint8_t buffer[kReadBufferLength];
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
    if(length <= 0) {
 | 
			
		||||
        /* error handling */
 | 
			
		||||
        if(length == -1 && errno == EAGAIN) {
 | 
			
		||||
        if(length < 0 && errno == EAGAIN) {
 | 
			
		||||
            /* Nothing to read */
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -322,9 +322,15 @@ bool PacketEncoder::pop_write_buffer(protocol::OutgoingServerPacket *&result) {
 | 
			
		||||
 | 
			
		||||
void PacketEncoder::reenqueue_failed_buffer(protocol::OutgoingServerPacket *packet) {
 | 
			
		||||
    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) {
 | 
			
		||||
        this->send_queue_tail = &packet->next;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    packet->next = this->send_queue_head;
 | 
			
		||||
    this->send_queue_head = packet;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -62,17 +62,17 @@ void WebClient::handleMessageWrite(int fd, short, void *ptr_client) {
 | 
			
		||||
        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) {
 | 
			
		||||
    auto client = dynamic_pointer_cast<WebClient>(((WebClient*) ptr_client)->ref());
 | 
			
		||||
    assert(client);
 | 
			
		||||
 | 
			
		||||
    size_t buffer_length = 1024 * 4;
 | 
			
		||||
    uint8_t buffer[buffer_length];
 | 
			
		||||
 | 
			
		||||
    auto length = recv(fd, buffer, buffer_length, MSG_NOSIGNAL | MSG_DONTWAIT);
 | 
			
		||||
    uint8_t buffer[kReadBufferSize];
 | 
			
		||||
    auto length = recv(fd, buffer, kReadBufferSize, MSG_NOSIGNAL | MSG_DONTWAIT);
 | 
			
		||||
    if(length <= 0) {
 | 
			
		||||
        /* error handling "slow path" */
 | 
			
		||||
        if(length == 0 && errno == EAGAIN) {
 | 
			
		||||
        if(length < 0 && errno == EAGAIN) {
 | 
			
		||||
            /* We've currently no data queued */
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user