Changeset View
Changeset View
Standalone View
Standalone View
b/agent/gpg-agent.c
| Context not available. | |||||
| watched. */ | watched. */ | ||||
| static pid_t parent_pid = (pid_t)(-1); | static pid_t parent_pid = (pid_t)(-1); | ||||
| /* Record the pid of the main thread, for easier signalling */ | |||||
| static pid_t main_thread_pid = (pid_t)(-1); | |||||
| /* Number of active connections. */ | /* Number of active connections. */ | ||||
| static int active_connections; | static int active_connections; | ||||
| Context not available. | |||||
| GetCurrentProcess(), &h2, | GetCurrentProcess(), &h2, | ||||
| EVENT_MODIFY_STATE|SYNCHRONIZE, TRUE, 0)) | EVENT_MODIFY_STATE|SYNCHRONIZE, TRUE, 0)) | ||||
| { | { | ||||
| log_error ("setting syncronize for scd notify event failed: %s\n", | log_error ("setting synchronize for scd notify event failed: %s\n", | ||||
| w32_strerror (-1) ); | w32_strerror (-1) ); | ||||
| CloseHandle (h); | CloseHandle (h); | ||||
| } | } | ||||
| Context not available. | |||||
| agent_sigusr2_action (); | agent_sigusr2_action (); | ||||
| break; | break; | ||||
| /* nothing to do here, just take an extra cycle on the select loop */ | |||||
| case SIGCONT: | |||||
| break; | |||||
| case SIGTERM: | case SIGTERM: | ||||
| if (!shutdown_pending) | if (!shutdown_pending) | ||||
| log_info ("SIGTERM received - shutting down ...\n"); | log_info ("SIGTERM received - shutting down ...\n"); | ||||
| Context not available. | |||||
| } | } | ||||
| void interrupt_main_thread_loop (void) | |||||
| { | |||||
| #ifndef HAVE_W32_SYSTEM | |||||
| kill (main_thread_pid, SIGCONT); | |||||
| #endif | |||||
| } | |||||
| /* helper function for readability: test whether a given struct | /* helper function for readability: test whether a given struct | ||||
| timespec is set to all-zeros */ | timespec is set to all-zeros */ | ||||
| static inline int | static inline int | ||||
| Context not available. | |||||
| npth_sigev_add (SIGUSR1); | npth_sigev_add (SIGUSR1); | ||||
| npth_sigev_add (SIGUSR2); | npth_sigev_add (SIGUSR2); | ||||
| npth_sigev_add (SIGINT); | npth_sigev_add (SIGINT); | ||||
| npth_sigev_add (SIGCONT); | |||||
| npth_sigev_add (SIGTERM); | npth_sigev_add (SIGTERM); | ||||
| npth_sigev_fini (); | npth_sigev_fini (); | ||||
| main_thread_pid = getpid (); | |||||
| #else | #else | ||||
| # ifdef HAVE_W32CE_SYSTEM | # ifdef HAVE_W32CE_SYSTEM | ||||
| /* Use a dummy event. */ | /* Use a dummy event. */ | ||||
| Context not available. | |||||
| # endif | # endif | ||||
| #endif | #endif | ||||
| if (disable_check_own_socket) | if (disable_check_own_socket) | ||||
| my_inotify_fd = -1; | my_inotify_fd = -1; | ||||
| else if ((err = gnupg_inotify_watch_socket (&my_inotify_fd, socket_name))) | else if ((err = gnupg_inotify_watch_socket (&my_inotify_fd, socket_name))) | ||||
| Context not available. | |||||