André,

Você poderia me explicar como funciona o novo mecanismo de log? Quero
comparar com algo que eu tinha pensado.

Você viu as alterações em packtes/packet.c que fiz a algumas semanas?
Estava pensando em aproveitar a fila de pacotes, PacketQueue, para
guardar os pacotes que serão logado. Tentando explicar melhor, no HLBR
os pacotes podem ter 5 estado, IDLE, PENDING, SAVED, ALLOCATED,
PROCESSING. Podemos aproveitar esses estados. Imagine criar uma thread
que manterá uma relação de produtor/consumidor com a fila de pacotes
salvos. Tipo, caso as funções de LOG em arquivos fossem chamadas, elas
simplesmente salvam o pacotes, alterando seu estado para SAVED, e
inserem o número do pacote numa estrutura do tipo fila (para que os
logs sejam salvos na ordem correta) acessível pela thread de logging.
Dessa forma, caso o pacote seja logado mas não derrubado, o mesmo
poderá ser enviado pela interface adequada sem esperar a escrita em
disco, operação essa a ser realizada pela thread de logging.

Espero ter sido claro!

ps: postei a idéia aqui para que possa ser avaliada, questionada e
criticada por todos os membros da comunidade HLBR, portanto se tem
alguma sugestão por favor não deixe de comentar!

--
PEdroArthur_JEdi

Nunca acredite num sistema que você não conhece o código fonte!
Never trust a system you don't have sources for!

Responder a