Allocate and expose per-instance pointers for plugins

This commit is contained in:
Alexander Monakov 2014-12-07 23:32:19 +03:00 committed by Michael Stapelberg
parent b219f47f39
commit 3818dabceb
2 changed files with 7 additions and 0 deletions

View File

@ -56,6 +56,8 @@ static bool exit_upon_signal = false;
cfg_t *cfg, *cfg_general, *cfg_section; cfg_t *cfg, *cfg_general, *cfg_section;
void **cur_instance;
/* /*
* Set the exit_upon_signal flag, because one cannot do anything in a safe * Set the exit_upon_signal flag, because one cannot do anything in a safe
* manner in a signal handler (e.g. fprintf, which we really want to do for * manner in a signal handler (e.g. fprintf, which we really want to do for
@ -550,6 +552,8 @@ int main(int argc, char *argv[]) {
* (!), not individual plugins, seem very unlikely. */ * (!), not individual plugins, seem very unlikely. */
char buffer[4096]; char buffer[4096];
void **per_instance = calloc(cfg_size(cfg, "order"), sizeof(*per_instance));
while (1) { while (1) {
if (exit_upon_signal) { if (exit_upon_signal) {
fprintf(stderr, "Exiting due to signal.\n"); fprintf(stderr, "Exiting due to signal.\n");
@ -563,6 +567,7 @@ int main(int argc, char *argv[]) {
/* Restore the cursor-position, clear line */ /* Restore the cursor-position, clear line */
printf("\033[u\033[K"); printf("\033[u\033[K");
for (j = 0; j < cfg_size(cfg, "order"); j++) { for (j = 0; j < cfg_size(cfg, "order"); j++) {
cur_instance = per_instance + j;
if (j > 0) if (j > 0)
print_separator(separator); print_separator(separator);

View File

@ -198,4 +198,6 @@ extern int general_socket;
extern cfg_t *cfg, *cfg_general, *cfg_section; extern cfg_t *cfg, *cfg_general, *cfg_section;
extern void **cur_instance;
#endif #endif