Bug #545 » patch-hang-startup.patch
liblttng-ust/lttng-ust-comm.c | ||
---|---|---|
{
|
||
int ret;
|
||
if (sock_info->root_handle != -1) {
|
||
ret = lttng_ust_objd_unref(sock_info->root_handle, 1);
|
||
if (ret) {
|
||
ERR("Error unref root handle");
|
||
}
|
||
sock_info->root_handle = -1;
|
||
}
|
||
sock_info->constructor_sem_posted = 0;
|
||
/*
|
||
* wait_shm_mmap, socket and notify socket are used by listener
|
||
* threads outside of the ust lock, so we cannot tear them down
|
||
* ourselves, because we cannot join on these threads. Leave
|
||
* responsibility of cleaning up these resources to the OS
|
||
* process exit.
|
||
*/
|
||
if (exiting)
|
||
return;
|
||
if (sock_info->socket != -1) {
|
||
ret = ustcomm_close_unix_sock(sock_info->socket);
|
||
if (ret) {
|
||
... | ... | |
}
|
||
sock_info->notify_socket = -1;
|
||
}
|
||
if (sock_info->root_handle != -1) {
|
||
ret = lttng_ust_objd_unref(sock_info->root_handle, 1);
|
||
if (ret) {
|
||
ERR("Error unref root handle");
|
||
}
|
||
sock_info->root_handle = -1;
|
||
}
|
||
sock_info->constructor_sem_posted = 0;
|
||
/*
|
||
* wait_shm_mmap is used by listener threads outside of the
|
||
* ust lock, so we cannot tear it down ourselves, because we
|
||
* cannot join on these threads. Leave this task to the OS
|
||
* process exit.
|
||
*/
|
||
if (!exiting && sock_info->wait_shm_mmap) {
|
||
if (sock_info->wait_shm_mmap) {
|
||
ret = munmap(sock_info->wait_shm_mmap, sysconf(_SC_PAGE_SIZE));
|
||
if (ret) {
|
||
ERR("Error unmapping wait shm");
|
||
... | ... | |
has_waited = 1;
|
||
prev_connect_failed = 0;
|
||
}
|
||
ust_lock();
|
||
if (lttng_ust_comm_should_quit) {
|
||
goto quit;
|
||
}
|
||
if (sock_info->socket != -1) {
|
||
ret = ustcomm_close_unix_sock(sock_info->socket);
|
||
... | ... | |
if (ret < 0) {
|
||
DBG("Info: sessiond not accepting connections to %s apps socket", sock_info->name);
|
||
prev_connect_failed = 1;
|
||
ust_lock();
|
||
if (lttng_ust_comm_should_quit) {
|
||
goto quit;
|
||
}
|
||
/*
|
||
* If we cannot find the sessiond daemon, don't delay
|
||
* constructor execution.
|
||
... | ... | |
WARN("Unsuppoorted timeout value %ld", timeout);
|
||
}
|
||
ust_lock();
|
||
if (lttng_ust_comm_should_quit) {
|
||
goto quit;
|
||
}
|
||
/*
|
||
* Create only one root handle per listener thread for the whole
|
||
* process lifetime, so we ensure we get ID which is statically
|
- « Previous
- 1
- 2
- 3
- Next »