void check_signals() { char *tmp=NULL; struct timeval current_time; WTimer *q; if(kill_sig!=0){ if(kill_sig==SIGUSR1){ /*if(wglobal.parent==0) tmp=get_string_property(COMM_WIN, wglobal.atom_private_ipc, NULL);*/ wm_restart_other(tmp); assert(0); } if(kill_sig==SIGTERM) wm_exit(); deinit(); kill(getpid(), kill_sig); } /* Check for timer events in the queue */ if(had_tmr && queue.next!=NULL){ gettimeofday(¤t_time, NULL); while(queue.next!=NULL){ if((TIMEVAL_LATER(current_time, queue.next->when))) { q=queue.next; queue.next=q->next; q->handler(q); /*free(q);*/ }else{ break; } } had_tmr=FALSE; do_set_timer(); } }
void wm_restart() { wm_restart_other(NULL); }