int __cdecl main() { HANDLE find_handle; char vol_name[MAX_PATH+1]; flush_registry(); /* Now loop over every volume and sync them as well. */ find_handle = FindFirstVolume(vol_name, ARRAYSIZE(vol_name)); if (find_handle == INVALID_HANDLE_VALUE) xs_win_err(1, &xs_render_error_msgbox, "failed to start enumerating disk volumes"); while (1) { sync_this_volume(vol_name); if (!FindNextVolume(find_handle, vol_name, ARRAYSIZE(vol_name))) { if (GetLastError() == ERROR_NO_MORE_FILES) break; xs_win_err(1, &xs_render_error_msgbox, "failed to enumerate disk volumes"); } } FindVolumeClose(find_handle); return 0; }
/* master socket timer expiration handler */ static void close_socket_timeout( void *arg ) { master_timeout = NULL; flush_registry(); if (debug_level) fprintf( stderr, "wineserver: exiting (pid=%ld)\n", (long) getpid() ); #ifdef DEBUG_OBJECTS close_objects(); /* shut down everything properly */ #endif exit( 0 ); }
/* master socket timer expiration handler */ static void close_socket_timeout( void *arg ) { master_socket->timeout = NULL; flush_registry(); /* if a new client is waiting, we keep on running */ if (check_fd_events( master_socket->fd, POLLIN )) return; if (debug_level) fprintf( stderr, "wineserver: exiting (pid=%ld)\n", (long) getpid() ); #ifdef DEBUG_OBJECTS close_objects(); /* shut down everything properly */ #endif exit(0); }
/* SIGTERM callback */ static void sigterm_callback(void) { flush_registry(); exit(1); }