mirror of
https://github.com/3proxy/3proxy.git
synced 2026-11-05 09:25:49 +08:00
Loggers: no blocks flag
A logger's lines are written by a thread of its own, its clients only queueing them, so a logger whose writes wait cannot hold a client's thread or a loop: its blocks flag, giving its services a thread for each client, is gone. ODBC was the logger setting it; its services are served on loops now too. Only a logger whose thread could not be started is written by its clients themselves, as before. Plugins: struct logtype loses its last member, blocks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e09e20e71c
commit
270b02293e
@ -652,7 +652,6 @@ static int srvprepare(struct srvstart *s, int argc, char **argv){
|
||||
other client */
|
||||
if(srv->o_nsfd >= 0) srv->threadperclient = 1;
|
||||
#endif
|
||||
if(srv->logger && srv->logger->type && srv->logger->type->blocks) srv->threadperclient = 1;
|
||||
#ifndef STDMAIN
|
||||
if(sysresolves(srv->resolvmode)) srv->threadperclient = 1;
|
||||
#endif
|
||||
|
||||
@ -132,7 +132,7 @@ static void odbcclose(struct logger *lg){
|
||||
}
|
||||
|
||||
const struct logtype logtype_odbc = {
|
||||
"odbc", odbcmatch, odbcinit, odbcformat, odbcwrite, odbcclose, NULL, LOGSTACKSIZE, 0, 0, 1, 1
|
||||
"odbc", odbcmatch, odbcinit, odbcformat, odbcwrite, odbcclose, NULL, LOGSTACKSIZE, 0, 0, 1
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@ -668,7 +668,6 @@ struct logtype {
|
||||
int standard; /* kept open for the life of the process */
|
||||
int text; /* writes a line of text: errors can go there */
|
||||
int params; /* the string after a comma is parameters */
|
||||
int blocks; /* waits for its writes other than in sockpoll() */
|
||||
};
|
||||
|
||||
/* What a log's queue holds: a line (log.c's struct logslot, of which this
|
||||
|
||||
Loading…
Reference in New Issue
Block a user