.init = random_dbtool_init,
.update_audio_file = NULL,
},
+ {
+ .name = "plm",
+ .init = plm_dbtool_init,
+ .update_audio_file = NULL,
+ .pre_select = NULL,
+ .post_select = NULL,
+ },
#ifdef HAVE_MYSQL
{
.name = "mysql",
.init = mysql_dbtool_init,
.update_audio_file = NULL,
+ .pre_select = NULL,
+ .post_select = NULL,
},
#endif
{
ret += para_install_sighandler(SIGTERM);
ret += para_install_sighandler(SIGHUP);
ret += para_install_sighandler(SIGCHLD);
+ ret += para_install_sighandler(SIGUSR1);
signal(SIGPIPE, SIG_IGN);
- signal(SIGUSR1, SIG_IGN);
- if (ret != 4) {
+ if (ret != 5) {
PARA_EMERG_LOG("%s", "could not install signal handlers\n");
exit(EXIT_FAILURE);
}
&max_fileno,
&rfds, &wfds);
}
+ if (dblist[mmd->dbt_num].pre_select) {
+ ret = dblist[mmd->dbt_num].pre_select(&rfds, &wfds);
+ max_fileno = MAX(max_fileno, ret);
+ }
mmd_unlock();
// PARA_DEBUG_LOG("%s: select (max = %i)\n", __func__, max_fileno);
ret = select(max_fileno + 1, &rfds, &wfds, NULL, timeout);
mmd_lock();
if (mmd->dbt_change >= 0)
handle_dbt_change();
+ if (dblist[mmd->dbt_num].post_select)
+ dblist[mmd->dbt_num].post_select(&rfds, &wfds);
if (ret < 0 && err == EINTR)
goto repeat;
if (ret < 0) {