/* Serializes log output. */
static int log_mutex;
-static struct sched *sched;
static struct signal_task *signal_task;
/** The process id of the audio file selector process. */
return 0;
}
-static void init_signal_task(void)
+static void init_signal_task(struct sched *sched)
{
signal_task = signal_init_or_die();
para_install_sighandler(SIGINT);
}
static void init_server_command_task(struct server_command_task *sct,
- int argc, char **argv)
+ struct sched *sched, int argc, char **argv)
{
int ret;
unsigned n;
exit(EXIT_SUCCESS);
}
-static void server_init(int argc, char **argv, struct server_command_task *sct)
+static void server_init(int argc, char **argv, struct sched *sched,
+ struct server_command_task *sct)
{
int ret, afs_socket, daemon_pipe = -1;
char *errctx;
para_block_signal(SIGCHLD);
PARA_NOTICE_LOG("initializing the audio file selector\n");
afs_socket = init_afs(argc, argv);
- init_signal_task();
+ init_signal_task(sched);
para_unblock_signal(SIGCHLD);
PARA_NOTICE_LOG("initializing virtual streaming system\n");
vss_init(afs_socket, sched);
- init_server_command_task(sct, argc, argv);
+ init_server_command_task(sct, sched, argc, argv);
if (daemon_pipe >= 0) {
if (write(daemon_pipe, "\0", 1) < 0) {
PARA_EMERG_LOG("daemon_pipe: %s", strerror(errno));
int ret;
struct server_command_task server_command_task_struct,
*sct = &server_command_task_struct;
+ struct sched *sched = sched_new(server_poll);
- sched = sched_new(server_poll);
- server_init(argc, argv, sct);
+ server_init(argc, argv, sched, sct);
mutex_lock(mmd_mutex);
ret = schedule(sched);
/*