Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
     5         kx 
     5         kx /* begin *
     5         kx 
     5         kx    Следовало бы заменить старый BSD4.3 код на POSIX.
     5         kx    ================================================
     5         kx 
     5         kx    Например, вызовы sigblock(), sigpause():
     5         kx    ---------------------------------------
     5         kx 
     5         kx    #define	SIGBLOCK	(sigmask(SIGCHLD)|sigmask(SIGHUP)|sigmask(SIGALRM))
     5         kx 
     5         kx 
     5         kx    int
     5         kx    main(argc, argv, envp)
     5         kx    	int argc;
     5         kx    	char *argv[], *envp[];
     5         kx    {
     5         kx 
     5         kx    . . .
     5         kx 
     5         kx    	for (;;) {
     5         kx    	    int n, ctrl = -1;
     5         kx    	    fd_set readable;
     5         kx  
     5         kx    	    if (nsock == 0) {
     5         kx    		(void) sigblock(SIGBLOCK);
     5         kx    		while (nsock == 0)
     5         kx    		    sigpause(0L);
     5         kx    		(void) sigsetmask(0L);
     5         kx    	    }
     5         kx 
     5         kx    . . .
     5         kx 
     5         kx 
     5         kx    пора менять на POSIX вызовы: sigprocmask(), sigsuspend():
     5         kx    --------------------------------------------------------
     5         kx 
     5         kx 
     5         kx    int
     5         kx    main(argc, argv, envp)
     5         kx    	int argc;
     5         kx    	char *argv[], *envp[];
     5         kx    {
     5         kx 
     5         kx    . . .
     5         kx 
     5         kx    	sigset_t mask, oldmask;
     5         kx 
     5         kx    . . .
     5         kx 
     5         kx    	/* Set up the mask of signals to temporarily block. */
     5         kx    	sigemptyset(&mask);
     5         kx    	sigaddset(&mask, SIGCHLD);
     5         kx    	sigaddset(&mask, SIGHUP);
     5         kx    	sigaddset(&mask, SIGALRM);
     5         kx 
     5         kx    . . .
     5         kx 
     5         kx    	for (;;) {
     5         kx    	    int n, ctrl = -1;
     5         kx    	    fd_set readable;
     5         kx 
     5         kx    	    if (nsock == 0) {
     5         kx    		(void) sigprocmask(SIG_BLOCK, &mask, &oldmask);
     5         kx    		while (nsock == 0)
     5         kx    		    sigsuspend(&oldmask);
     5         kx    		(void) sigprocmask(SIG_UNBLOCK, &mask, NULL);
     5         kx    	    }
     5         kx 
     5         kx  * end */