[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: running with -jN on Windows

From: Paul D. Smith
Subject: Re: running with -jN on Windows
Date: Mon, 16 Jan 2006 23:27:21 -0500

%% Eli Zaretskii <address@hidden> writes:

  >> Date: Mon, 16 Jan 2006 01:36:02 -0500
  >> Cc: address@hidden
  >> From: "Paul D. Smith" <address@hidden>
  >> I don't understand: I thought the entire point was to support the
  >> jobserver on Windows.  If jobserver isn't supported, just what does -jN
  >> _do_ during recursion?

  ez> Sorry, I'm confused: are you saying that -jN is useless without
  ez> the jobserver?  I doubt that you are saying that.

Without recursion, -jN is fine without the jobserver: the jobserver
is only useful for recursive invocations of make.

If you have a recursive make, and you don't have jobserver, then there's
no way for make to know when N jobs are started across all the instances
of make.

Before the jobserver was implemented, GNU make managed this by always
forcing -j1 to all recursive make invocations.  So, only the top level
makefile was actually run in parallel.  This ensured you never had >N
jobs running at any one time; however, very often you also had less than
N jobs running.

  ez>   . SIGCHLD
  ez>   . sigaction with SA_RESTART
  ez>   . waitpid or wait3
  ez>   . pipe

  ez> Is that true?  If so, then, with the exception of pipes, everything
  ez> else needs to be emulated on Windows.  This is a non-trivial job that
  ez> will have to wait for another rainy day.

Basically.  Of course a different implementation could be tried.
There's a whitepaper discussing the current design on my web site.

 Paul D. Smith <address@hidden>          Find some GNU make tips at:            
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

[Prev in Thread] Current Thread [Next in Thread]