bug-bash
[Top][All Lists]
Advanced

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

Re: multi-threaded compiling


From: alex xmb sw ratchev
Subject: Re: multi-threaded compiling
Date: Mon, 11 Mar 2024 19:29:56 +0100

On Mon, Mar 11, 2024, 19:25 alex xmb sw ratchev <fxmbsw7@gmail.com> wrote:

>
>
> On Mon, Mar 11, 2024, 19:22 Mischa Baars <mjbaars1977.backup@gmail.com>
> wrote:
>
>> On Mon, Mar 11, 2024 at 6:22 PM alex xmb sw ratchev <fxmbsw7@gmail.com>
>> wrote:
>>
>>> i also completly dont get ur issue
>>>
>>> f=( a.c b.c .. ) threads=$( nproc ) i=-1 r=
>>>
>>>   while [[ -v f[++i] ]] ; do
>>>  (( ++r > threads )) &&
>>> wait -n
>>> gcc -c "${f[i]}" &
>>>   done
>>>
>>
>> How nice!
>>
>> wait -n exit 1 & echo $?
>>
>
> doesnt need a pid
> 1 : 1 as i wrote it , excepts add 'wait' as new last line
>
> You got me the solution :) Except that wait expects a pid after -n.
>>
>> Maybe
>>
>> for (( i=0; i<32; i++ )); do exit 1 & wait -n $!; echo $?; done;
>>
>
maxt=32
for (( .. )) ; do
(( i > maxt )) && wait -n
"$process_here" &
done

wait

eof

is what you meant? The equivalence of sequential execution?
>>
>> First think, then do magic.
>>
>>
>>>
>>>
>>
>>>
>>> On Mon, Mar 11, 2024, 18:16 Mischa Baars <mjbaars1977.backup@gmail.com>
>>> wrote:
>>>
>>>> Hello Paul,
>>>>
>>>> It seems I'm awake a little longer than you are.
>>>>
>>>> The second paragraph as you see it, belongs to 1)
>>>> The fourth paragraph as you see it, belongs to 2)
>>>>
>>>> The actual command invocations (a Makefile, a make.sh script) can be
>>>> found
>>>> in the attachment, as indicated on the first line of the mail. In the
>>>> attachment there are two directories, one and two, belonging to 1) and
>>>> 2)
>>>> respectively.
>>>>
>>>> I'm not into Vulcan mindmelds, so I hope everything from the first mail
>>>> makes sense to you and everyone on this mailing list now.
>>>>
>>>> Best regards,
>>>> Mischa Baars.
>>>>
>>>> On Mon, Mar 11, 2024 at 5:01 PM Paul Smith <psmith@gnu.org> wrote:
>>>>
>>>> > On Mon, 2024-03-11 at 09:56 +0100, Mischa Baars wrote:
>>>> > > I've attached the problem. It consists of two parts:
>>>> > >
>>>> > > 1) multi-threaded bash script and / or multi-threaded Makefile
>>>> > >
>>>> > > Running bash script functions as expected, but executing the same
>>>> > > line of code with make and / or the command line, does not function.
>>>> > > Perhaps someone could explain to me why?
>>>> > >
>>>> > > 2) passing a string argument from a bash script and / or Makefile to
>>>> > > the gcc -D option
>>>> > >
>>>> > > Running the makefile functions as expected, but I have not been able
>>>> > > to get similar code to work from a bash script. Can someone please
>>>> > > explain to me what I'm doing wrong?
>>>> >
>>>> > I don't understand the problem.  In the third paragraph above you say
>>>> > the bash script works as expected and the makefile doesn't work, but
>>>> in
>>>> > the last paragraph you say that the makefile works as expected but you
>>>> > can't get it to work in bash.
>>>> >
>>>> > Please provide actual command invocations (cut and pasted) showing the
>>>> > output you received and explaining exactly what is wrong with it.
>>>> >
>>>> > But before you do that, be aware that make does NOT invoke /bin/bash
>>>> as
>>>> > its shell.  It invokes /bin/sh.  On some systems /bin/sh is actually
>>>> an
>>>> > alias for bash.  On other systems it isn't.
>>>> >
>>>> > If you want your makefile to always use bash as its shell, you should
>>>> > add an explicit:
>>>> >
>>>> >     SHELL := /bin/bash
>>>> >
>>>> > to your makefile to force it.  Maybe that will solve your problem.  If
>>>> > not we'll need details such as I mention above.
>>>> >
>>>>
>>>


reply via email to

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