> Date: Fri, 15 Apr 2011 10:12:19 -0400
> From: David Boyce <[email protected]>
> Cc: Eli Zaretskii <[email protected]>, [email protected]
>
> Attached is an updated patch with some improvements:
Thanks.
> - It uses stdout as its semaphore.
Can Make be invoked with its stdout closed by the parent process? If
it is, will this still work?
> + memset(&fl, 0, sizeof(fl));
> + fl.l_type = F_WRLCK;
> + fl.l_whence = SEEK_SET;
> + fl.l_pid = getpid();
> + fl.l_start = fl.l_len = 0;
> + if (fcntl(syncfd, F_SETLKW, &fl) == -1)
> + perror("fcntl");
As discussed, please factor this out into a separate function.
> + if (c->tempout)
> + while ((nread = fread(buffer, 1, sizeof(buffer), c->tempout)) > 0)
> + write(fileno(stdout), buffer, nread);
Are we sure c->tempout will be zeroed out by initialization?
> + if (c->tempout)
> + fclose(c->tempout);
> + if (c->temperr)
> + fclose(c->temperr);
Should we assign NULL to these once they are closed?
_______________________________________________
Bug-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-make