ms_module_t *ms_get_module_instance(int idx);
int ms_deinit(void);
void ms_check_cpu_memory(void);
+void ms_check_stdin_close(void);
void ms_new(void);
void ms_run(void);
void ms_cmd_dispatch(muse_module_h m, muse_module_command_e cmd);
LOGI("[module %p] EXIT pid %d handle %zd created %d", m, m->pid, m->handle, m->is_created);
g_free(m);
+
+ ms_check_stdin_close();
}
static gboolean _ms_ipc_module_instance_creation_is_allowed(int module_idx)
while (ms_is_server_ready()) {
_ms_check_idle_state();
+ ms_check_stdin_close();
sleep(idle_state_wait_time);
}
ms_connection_unlock(connection);
}
+void ms_check_stdin_close(void)
+{
+ ms_connection_t *connection = muse_server->connection;
+ muse_return_if_fail(connection);
+
+ ms_connection_lock(connection);
+
+ if (fcntl(STDIN_FILENO, F_GETFD) == -1 && errno == EBADF)
+ LOGE("stdin is closed.");
+
+ ms_connection_unlock(connection);
+}
+
void ms_new(void)
{
int fd[MUSE_CHANNEL_MAX];