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