Browse Source

rt thread re-fix from stephane

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@364 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.109.0
pbd 23 years ago
parent
commit
c30e8abc94
3 changed files with 33 additions and 27 deletions
  1. +2
    -2
      configure.in
  2. +29
    -25
      jackd/engine.c
  3. +2
    -0
      libjack/client.c

+ 2
- 2
configure.in View File

@@ -14,7 +14,7 @@ dnl changes are made
dnl ---
JACK_MAJOR_VERSION=0
JACK_MINOR_VERSION=66
JACK_MICRO_VERSION=3
JACK_MICRO_VERSION=4

dnl ---
dnl HOWTO: updating the jack protocal version
@@ -41,7 +41,7 @@ dnl slacker than this, and closer to those for the JACK version
dnl number.
dnl ---
JACK_API_CURRENT=0
JACK_API_REVISION=17
JACK_API_REVISION=18
JACK_API_AGE=0

AC_SUBST(JACK_MAJOR_VERSION)


+ 29
- 25
jackd/engine.c View File

@@ -275,6 +275,15 @@ make_sockets (int fd[2])
return 0;
}

static void
jack_register_shm (char *shm_name, char *addr)
{
if (jack_shm_id_cnt < MAX_SHM_ID) {
snprintf (jack_shm_registry[jack_shm_id_cnt++].name, sizeof (shm_name_t), "%s", shm_name);
jack_shm_registry[jack_shm_id_cnt].address = addr;
}
}

static int
jack_initialize_shm ()
{
@@ -297,19 +306,12 @@ jack_initialize_shm ()

jack_shm_registry = (jack_shm_registry_entry_t *) addr;
jack_shm_id_cnt = 0;
jack_register_shm("/jack-shm-registry", addr);

return 0;
}

static void
jack_register_shm (char *shm_name, char *addr)
{
if (jack_shm_id_cnt < MAX_SHM_ID) {
snprintf (jack_shm_registry[jack_shm_id_cnt++].name, sizeof (shm_name_t), "%s", shm_name);
jack_shm_registry[jack_shm_id_cnt].address = addr;
}
}

void
jack_cleanup_shm ()
{
@@ -413,7 +415,7 @@ jack_resize_port_segment (jack_engine_t *engine, jack_port_type_info_t *port_typ

if (port_type->shm_info.size == 0) {

snprintf (port_type->shm_info.shm_name, sizeof(port_type->shm_info.shm_name), "/jack-[%s]", port_type->type_name);
snprintf (port_type->shm_info.shm_name, sizeof(port_type->shm_info.shm_name), "/jck-[%s]", port_type->type_name);

if ((addr = jack_get_shm (port_type->shm_info.shm_name, size,
(O_RDWR|O_CREAT|O_TRUNC), 0666, PROT_READ|PROT_WRITE)) == MAP_FAILED) {
@@ -2089,21 +2091,6 @@ jack_main_thread (void *arg)
}

pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
#ifdef HAVE_ON_EXIT
on_exit (cancel_cleanup, engine);
#else
#ifdef HAVE_ATEXIT
global_engine = engine;
atexit (cancel_cleanup);
#else
#error "Don't know how to install an exit handler"
#endif /* HAVE_ATEXIT */
#endif /* HAVE_ON_EXIT */

if (driver->start (driver)) {
jack_error ("cannot start driver");
pthread_exit (0);
}

consecutive_excessive_delays = 0;
engine->watchdog_check = 1; /* really needed here ? */
@@ -2147,10 +2134,27 @@ jack_main_thread (void *arg)
int
jack_run (jack_engine_t *engine)
{
#ifdef HAVE_ON_EXIT
on_exit (cancel_cleanup, engine);
#else
#ifdef HAVE_ATEXIT
global_engine = engine;
atexit (cancel_cleanup);
#else
#error "Don't know how to install an exit handler"
#endif /* HAVE_ATEXIT */
#endif /* HAVE_ON_EXIT */

if (engine->driver == NULL) {
jack_error ("engine driver not set; cannot start");
return -1;
}

if (engine->driver->start (engine->driver)) {
jack_error ("cannot start driver");
return -1;
}
return pthread_create (&engine->main_thread, 0, jack_main_thread, engine);
}


+ 2
- 0
libjack/client.c View File

@@ -393,6 +393,8 @@ jack_request_client (ClientType type, const char* client_name, const char* so_na

*req_fd = -1;

memset (&req, 0, sizeof (req));

if (strlen (client_name) > sizeof (req.name) - 1) {
jack_error ("\"%s\" is too long to be used as a JACK client name.\n"
"Please use %lu characters or less.",


Loading…
Cancel
Save